- C#中变量必须初始化才能作为右值使用
- &&、||是短路运算符。当&、|的操作数是bool值时,其操作结果和&&、||一样,但是&、|不是短路运算符。
- C#中bool值只能为true或false。
- C#中case语句后面如果有其它语句,最后必须以break;或return;或goto或throw语句(可以goto到另一个case标签或其它的标签)结束。goto语句到一个case标签要使用goto case case后面的常量,例如:goto case 1;。goto到一个case标签只能在switch语句中使用。
- 对于数值类型(包括byte, sbyte, short, ushort, int, uint, long, ulong, float, double, decimal)任何类型A只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。
- 显式类型转换也只能用于相关的类型之间,例如short到byte的转换,不能用于无关的类型之间,例如不能将int强制类型转换为bool。
- 有些强制类型转换可能引起溢出,这个时候可以使用checked或unchecked关键字进行溢出检查,例如:
int i = 256;
//byte b = i; //ERROR 无法进行隐式类型转换
byte b = (byte)i; //vs中默认情况不进行溢出校验,此时b的值为0
byte b2 = unchecked((byte)i); //通过关键字unchecked指定不进行溢出校验,此时b的值为0
byte b3 = checked((byte)i); //通过关键字checked指定进行溢出校验,因为i为256超过byte的最大值255,发生溢出,因此在运行时发生异常
- 更改vs默认的溢出检查:右击工程->属性->生成->高级->选中"检查运算上溢/下溢"复选框。
- foreach (<type> <name> in <array>) 中<name>变量只读
- ref, out关键字必须在定义和调用方法时同时出现;ref实参必须在调用前初始化,out形参必须在方法中初始化
|
请发表评论