虽然是不常用,但还是要知道地。要说这也算未雨绸缪了,O(∩_∩)O哈哈~
1,::命名空间别名限定符
(名字太生硬,看例子)
可以像下面这样对命名空间引用(定义别名)
using Space = MySpace.Class.ChildClass;
之后就可以使用了(※命名空间别名限定符 ::),当然这里Space后用[.]也是一样的。
Space::ClassA clsA = new Space::ClassA();
2,sizeof运算符,Framework2.0之前使用,之后就没了。
sizeof(int),取回int型在堆栈中值的长度,单位是字节
3,typeof(类名称)返回一个表示特定类型的System.Type对象
使用typeof(MyClass)查看MyClass的成员信息。(因为MyClass为空,实际上显示的是继承自Object类的信息)
4,&与VB中的连接字符串不同,C#中它代表两个不同整数值得安位数AND运算。
5,% 取模 返回除运算的余数,5%3 = 2
6,【?:】 实际上这个还算比较常用的,呵呵,不切提了。
三元运算符,是if...else的简化
(条件)? (条件真时的操作):(条件假时的操作);
7,is 运算符 用于检查对象是否与特定类型兼容,有助于解决类型转化中类型不兼容的问题。
这里说的兼容,包括类型相同,或者派生于该类型。
如 int类型派生于object类型,所以判断为真
8,as 运算符用于执行引用类型的显示类型转换,
如果兼容则成功,如果失败就返回null, 这是有实际意义的,见下例
object obj2 = 10;
string s2 = (string)obj2;
这里我们用强制类型转换在编译过程中会报错,但如果我们这样定义
string s2 = obj2 as string;
而s2 = null
这里我们如果把object obj2 = 10;换成var obj2 = 10;
那么编译也会出错,原因是var会推测出obj2是int类型,也就不会试着转换了。
9,可空类型 T? 其中T为值类型的变量,如 int? i = null;
可控类型实际上就是将值类型可以表示常范围内的值,再加上一个 null 值,而引用类型已经实现了null值的支持,所以无法创建基于引用类型的可空类型。