从C++学C# [2] 不同之处

与C++ 不同的点:
  • 任何常用变量类型的变量必须初始化否则无法通过编译(类和结构如果没有显示初始化则默认初始化为0)
  • 所有代码都必须位于类中
  • 位于函数体(方法)内的变量作用域是整个函数体的,不像C类语言每对花括号内的作用域独立可覆盖。但是,C#函数体(方法)内的变量可以覆盖类的成员变量。
  • C#所有类的"变量"都是引用,而非实体,所以初始化都需要new方式,只有结构体类型才是实体。
  • bool类型无法通过数值转换,只能是true或false,而不能使用0或非0。
  • char类型是16位长,可保存Unicode字符
  • 所有类型(包括基础类型)都继承自同一个根类型object,以此来提供C++中多态的支持。
  • 对字符串的转义字符提供了新方式,可以在字符串前加'@',这样字符串中所有内容将不会转义,如@"C:\Windows\System32"等于"C:\\Windows\\System32"。甚至可以直接换行。
  • 字符串支持插值方式而不用编写参数列表,如$"string is {str}"。花括号内容被看做是变量。
  • foreach无法改变集合中的值,即无法用作迭代
  • 枚举类型enum都会被派生自共有基类,以此提供了字符串与枚举值之间的转换及列举所有枚举量等等特性。
  • C#的变量名可以使用Unicode字符,用\uXXXX可以指定。
  • 类和结构都需要使用new来实例化,且都会被其初始化,默认为0。

猜你喜欢

转载自blog.csdn.net/GarfieldGCat/article/details/80931688