C#学习 [杂项] 问号(2)
可空类型修饰符(?)
- 允许变量为空,例如int类型的变量本不可以为空,但是用?后可以为空。
- 例如:string s=null; 是正确的,int i=null; 编译器就会报错。
int? i = null;
三元表达式(?😃
int j = (2 > 1) ? 0 : -1; // 结果:j=0;
空合并运算符(??)
- ??的左边不为空则返回左侧值,否则返回右边值。
int? i = null;
int j = (2 > 1) ? 0 : -1;
int d = i ?? j;
Console.WriteLine("d={0}", d);
NULL检查运算符(?.)
- 调用一个实例方法时,如果不做检查,可能会产生空指针异常。
// 异常代码.
Example1 example1 = null;
example1.Print();
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
// 用Null检查运算符
Example1 example1 = null;
example1?.Print();
执行结果发现没有上述异常。
本文来自博客园,作者:huiy_小溪,转载请注明原文链接:https://www.cnblogs.com/huiy/p/18515420