c# ?,??,?:,?.的用法

?可空类型修饰符

引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空:
string str= null; 正确
~~int num= null; 错误
~~
**?**可空类型,使值类型可以为空。
表现形式:T?

        int a; //a<>null
        int? b=null; //b=null
        int? c = b + 1; //c=null;
       Console.WriteLine("c:"+c);

结果为空:c:

??空合并运算符

用于定义可空类型和引用类型的默认值:
如果 result = xx??yy 如果xx为空 返回yy ;如果xx不为空 返回xx

    nt a=0; //a<>null
        int? b=null; //b=null
        int? c = b + 1; //c=null;
         int d = b ?? a;

返回:0;

?: 三目运算(三元运算)

例子:xx?check1:check2; 如果xx为true,返回 check1否则返回 check2

        int res = 4 > 3 ? 10 : 11;
        int res2 = 3 > 4 ? 10 : 11;

返回res = 10; res2 = 11;

?. 不为null时执行后续方法

例子:

public  delegate void TestDelegate(string str);
    public static event TestDelegate testEvent;
     int a=0; //a<>null
   int? b=null; //b=null
        int? c = b + 1; //c=null;
        testEvent += WenHaoTest_testEvent;
        if (c==null) {
            testEvent?.Invoke("whq");
        }
        Console.WriteLine("c:"+c);
       private static void WenHaoTest_testEvent(string str)
    {
        Console.WriteLine("TestEvent:" + str);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值