出售域名 11365.com.cn
有需要请联系 16826375@qq.com
在手机上浏览
在手机上浏览

浅谈c#中的问号

发布日期:2019-03-12

问号(?)看起来很简单,经常出现在地址串中,作为参数的间隔符号。同时也出现在正则表达式中,表示出现0次或者1次。

在C#的运算符中同样经常出现,表达的意义多与null有关。

/*
* 一、可空类型
* 可空类型使原来不接受null值的类型,能够接受null值
* T?同 Nullable<T>
*/
//int buKeKong = null; //错误的
int? keKong = null; //正确的    
Nullable<int> keKong2 = null; //同上
int val = keKong.GetValueOrDefault();

/*
* 二、三元运算符
* 条件成立取:符号前的值,否则取:符号后的值
* 本质上就是if/else的简写
*/
int sanYuan = keKong == null ? 0 : 1;

/*
* 三、空合并运算符
* 如果前面的值为null,则取后面的值
*/
int kongHeBing = keKong ?? 0;

/*
* 四、空值运算符
* 如果不为空则往下执行
*/
Person person1 = new Person() { UserName = "张三", Age = 20 };
Person person2 = null;

string name1 = person1?.UserName; //张三
string name2 = person2?.UserName ?? "匿名"; //匿名

?学名是问号,有询问的意思,也就是判断,判断是有条件的,条件可以是布尔值,也可以是临界的null。