资源描述
《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 lock 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来赋值拉,也不能转换成其它类型
字符类型char表示UNICODE的字符,代表两个字节了,相当于wchar_t习惯点
checked 、unchecked,控制编译器是否是对代码进行检查。比如在数据类型转换时可以用它来检查是否产生了堆栈溢出
C#中方法中参数传递没有默认值
Partial 分部类型定义允许将类、结构或接口的定义拆分到多个文件中。
密封类不能被派生,静态类不能被实例化。
Is as 用来控制强制类型转换的正确性
数组的定义:
或者
(P158)关键字base 为派生类调用基类成员提供一个简写的方法。
(P160)关键字virtual,派生类中声明对基类虚方法的重载时要求加override关键字
(P164)关键字abstract
(P167)关键字Sealed 密封类,为了防止类的继承的滥用而使类的体系结构不至于太庞大。
,一般用于修饰派生类中的重写的方法,表示该方法为最终重写版,再往后的派生类就不能重写了。
(P53)关键字Decimal:128位高精度十进数进表示法,占28位
(P77)readonly关键字把变量标记为只读,初始化后就不能修改
静态只读字段不能在实例构造函数中设置,也不能在静态构造函数中实例化只读字段
(P78)
(P82) checked unchecked关键字
Sbyte8位有符号整数
byte8位无符号整数
语法上的区别:
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)析构函数差别比较大
展开阅读全文