1、《C#高级编程》
关键字的区别:
C++里有而C#中没有的关键字:asm auto const_cast delete dynamic_cast export inline in mutable register reinterpret_cast static_cast unsigned
wchar_t
C#里有而C++中没有的关键字:abstract as byte checked decimal delegate event finally fixed foreach interface internal is loc
2、k object out override params partial readonly ref sbyte sealed stackalloc typeof uint ulong unchecked unsafe ushort
C#变量命名支持Unicode字符。变量在使用之前必须初始化。
C#多了个decimal数据类型,存储特殊小数的数据类型,用于存储精度更高的数字,占用16个字节的内存,来表示货币。
多了byte类型表示一个字节,相当于char
bool类型也只能用true和false来赋值拉,也不能转换成其它类型
字符类型
3、char表示UNICODE的字符,代表两个字节了,相当于wchar_t习惯点
checked 、unchecked,控制编译器是否是对代码进行检查。比如在数据类型转换时可以用它来检查是否产生了堆栈溢出
C#中方法中参数传递没有默认值
Partial 分部类型定义允许将类、结构或接口的定义拆分到多个文件中。
密封类不能被派生,静态类不能被实例化。
Is as 用来控制强制类型转换的正确性
数组的定义:
或者
(P158)关键字base 为派生类调用基类成员提供一个简写的方法。
(P160)关键字virtual,派生类中声明对基类虚方法的重载时要求加o
4、verride关键字
(P164)关键字abstract
(P167)关键字Sealed 密封类,为了防止类的继承的滥用而使类的体系结构不至于太庞大。
,一般用于修饰派生类中的重写的方法,表示该方法为最终重写版,再往后的派生类就不能重写了。
(P53)关键字Decimal:128位高精度十进数进表示法,占28位
(P77)readonly关键字把变量标记为只读,初始化后就不能修改
静态只读字段不能在实例构造函数中设置,也不能在静态构造函数中实例化只读字段
(P78)
(P82) checked unchecked关键字
Sbyte8位有符号整数
byt
5、e8位无符号整数
语法上的区别:
1、 C#为强强类型语言,不支持基本类型的隐式转换,值类型在声明时须显式初始化
2、数据类型分为值类型和引用类型P(188)
3、char类型为16位字符,
4、可以在字符串前加符号@,表示此串为非转义串,如:
5、string类型是一个引用类型,
6、
结构是值类型P(197)
7、
8、
9、
10、
}
}
11、(P75)关键字internal为访问修饰符,变量只能在当前程序中被使用
它跟proteced组合使用时,
12、P(145)
并且可以根据实例的类型去分辨是调用基类还是派生类的方法。
13、P(148)
运行结果:
要调用Nevermore60Customer类的方法,必须用它本身来声明变量
14 、P(150)
只能用它的派生类来实例化它。
15、 P(161)
16 、P(172)
const变量不能声明为静态的,使用类名来访问它
Readonly字段
17、P(182)析构函数差别比较大