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();

执行结果发现没有上述异常。

posted @ 2024-11-01 15:23  huiy_小溪  阅读(3)  评论(0编辑  收藏  举报