标签:bsp cas 定义 优先级 表达 三目运算 判断 转换 img
运算符
运箅符的简化操作
x++和++x的差别。x++是先计算后再+1,++x是先+1在进行其它运算
int x=2;
bool isOk=(++x=3); //isOK=true
isOk=(x++=4); //isOK=false
条件运算符(三目运算,三元运算)
条件运算符?:是if-else的简化形式。首先判断一个条件,如果条件为真,就返回一个值;如果条件为假,则返回另一个值
条件表达式?真结果:假结果;
如 2<3?"2小于3":"2大于3";
checked和unchecked运算符
数值类型有取值范围限制,所以会出现值溢出的情况,所以为避免溢出,可以使用checked和unchecked。默认使用unchecked
int i = int.MaxValue; checked { i++;//i+1的值会超出int的取值范围,所以编译器会抛出溢出的错误提示 } Console.WriteLine(i); int i = int.MaxValue; i++;//i+1没有任何错误,此时i=-2147483648; Console.WriteLine(i);
is运算符
is运算符可以检查对象是否与特定的类型兼容
object obj=new object(); Console.WriteLine((obj is object));//true int i = 0; Console.WriteLine((i is string)); //false
as运算符
as运算符用于执行引用类型的显式类型转换。如果要转换的类型与指定的类型兼容,转换就会成功进行;如果类型不兼容,as运算符就会返回null值 。
object obj = 1; object obj2 = "Liu"; string str = obj as string;//null String str2 = obj2 as string;//Liu Console.WriteLine(str); Console.WriteLine(str2);
sizeof运算符
sizeof运算符可以确定栈中值类型需要的长度(单位是字节)
typeof运算符
typeof运算符返回一个表示特定类型的System.Type对象。
可空类型和运算符
对于值类型,不能赋null值。当有些情况可以使用null值时,就可以使用可空类型。
int? i=null;//是合法的
当两个值类型运算时,只要一个是null,它的运算结果就是null
int? x=null;
int? y=x+1;//y==null; y必须也是可空类型
空合并运箅符
??用来处理可空类型和引用类型时表示null可能的值。
int? x = null; int y; y = x ?? 1;//y==1; x==null,y=1,否则y=x x = 10; y = x ?? 1;//y==10;
运算符的优先级
优先级从高到低
类型的安全性
类型转换
把数据从一种类型转换为另一种类型.
隐式转换
只要能保证值不会发生任何变化,类型转换就可以自动(隐式)进行。(从较小的类型隐式地转换为较大的类型)。下表中的源类型都可以安全的隐式的转换为目标类型。
显式转换
使用cast显式地执行这些转换。这种转换失败时会抛出异常
语法定义:目标类型 目标变量=(目标类型)源类型变量
使用Parse转换
使用TryParse转换
long l = 123456789; int x = (int)l; //转换失败时会抛出异常 x = int.Parse("12345678");//只支持字符串类型转换,不安全的转换,转换失败时会抛出异常 bool isOK = int.TryParse("123456", out x);//安全的转换,返还转换结果。 如果成功转换 x的值被修改为转换后的值,否则x是初始化时值。
装箱拆箱
装箱:把值类型转换为引用类型
拆箱:把引用类型转换为值类型
标签:bsp cas 定义 优先级 表达 三目运算 判断 转换 img
原文地址:https://www.cnblogs.com/liuxiansheng1024/p/12609071.html