昨天没有好好学习技术,哎!罪过啊,今天继续吧,一定要补上哦。今天先学学一个操作符吧
对于一个类型,typeof操作符被用来获得System.Type对象,格式:typeof (type)必须是具体的类名、类型名称等,不可以是变量名称;对于候选类型,typeof-expression 的结果是System.Type对象
class Test
{
static void Main() {
Type[] t = {
typeof(int),
typeof(System.Int32),
typeof(string),
typeof(double[])
};
for (int i = 0; i < t.Length; i++) {
Console.WriteLine(t[i].Name);
}
}
}
产生下面的输出:
Int32
Int32
String
Double[]
typeof(T);其实就是一个反射机制,以后的章节会去详细学习反射,这个先不讲了;
GetType()和typeof相同都返回类型type;
不同的是如果想获得一个类A的类型,直接typeof(类)就可以了,但是如果想获取类的Type值,用GetType之前必须实例化 ;
列如:A a = new A();这时如果想获取该a的Type值,就直接用a的.GetType()即可。
sizeof操作符
sizeof操作符是从C/C++中借用来的,它用来返回某种数据类型所占用的字节数
sizeof操作符以字节形式给出了其操作数的存储空间,操作数的存储空间有操作数的类型决定。操作数可以是变量、类型(需加括号)或表达式。
使用场合:
1) 动态分配内存时,计算需要分配的内存空间大小
2) 由于不同平台相同类型的所占的字节数不同,可以使用sizeof代替常量计算
不适用场合
sizeof操作符不能用于不完全类型定义,例如数组必须有确定的维数,结构体有完整的成员列表定义。
表达式结果
sizeof(sbyte)
1
sizeof(byte)
1
sizeof(short)
2
sizeof(ushort)
2
sizeof(int)
4
sizeof(uint)
4
sizeof(long)
8
sizeof(ulong)
8
sizeof(char)
2 (Unicode)
sizeof(float)
4
sizeof(double)
8
sizeof(bool)
1