空接合运算符, 可空类型和运算符,typeof

空接合运算符

空接合运算符(??)提供了一种快捷方式,可以在处理可空类型和引用类型时表示Null值。这个运算符放在两个操作数之间,第一个操作数必须是一个可空类型或引用类型,第二个操作数必须与第一个操作数的类型相同,或者可以隐含地转换为第一个操作数的类型。空接合运算符的计算如下:如果第一个操作数不是null,则整个表达式就等于第一个操作数的值。但如果第一个操作数是null,则整个表达式就等于第二个操作数的值。例如:

int? a = null;
int b;

 

b = a ?? 10;     // b has the value 10
a = 3;
b = a ?? 10;     // b has the value 3

错误的写法:

 int? i = null;
        string a=String.Empty;
        a=i??1; //整型无法隐式转换为String.

 

如果第二个操作数不能隐含地转换为第一个操作数的类型,就生成一个编译错误。

 

可空类型和运算符

对于布尔类型,可以给它指定true或false值。但是,要把该类型的值定义为undefined,该怎么办?此时使用可空类型可以给应用程序提供一个独特的值。如果在程序中使用可空类型,就必须考虑null值在与各种运算符一起使用时的影响。通常可空类型与一元或二元运算符一起使用时,如果其中一个操作数或两个操作数都是null,其结果就是null。例如:

int? a = null;
int? b = a + 4;      // b = null
int? c = a * 5;      // c = null

但是在比较可空类型时,只要有一个操作数是null,比较的结果就是false。即不能因为一个条件是false,就认为该条件的对立面是true,这在使用非可空类型的程序中很常见。例如:

int? a = null;
int? b = -5;

 

if (a >= b)
Console.WriteLine("a >= b");
else
Console.WriteLine("a < b");

注意:

null值的可能性表示,不能随意合并表达式中的可空类型和非可空类型

 

 

typeof运算符

typeof运算符返回一个表示特定类型的System.Type对象。例如,typeof(string)返回表示System.String类型(参数String)的Type对象。在使用反射技术动态查找对象的信息时,这个运算符是很有效的。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值