每日一学15——Unity C# 中 ??、 ?、 ?: 、?.、?[ ]

学习来源:https://blog.csdn.net/qq_42453390/article/details/90403344

用的时候注意C#版本~
这里主要说一下??空合并运算符,??相当于是一个非空判断,如果左侧为空则返回右侧内容(但是组合运算时从右向左,用多个??时建议加括号处理)。比如下面的场景:

void Start()
        {
            Test(null);
        }

        void Test(string name)
        {
            string animalName = name ?? "animal";
            Debug.Log(animalname);
        }

当然了除了普通类型判断主要还是用于自建类的判断,可以在将函数提供给别人用的时候,进行一下判断:

void Start()
        {
            Duck duck = null;
            Test(duck);
        }

        void Test(Animal animal)
        {
            Animal animal1 = animal ?? new Animal();
        }

        class AnimalObject { public string Name; }

        class Animal { public AnimalObject AnimalObject; }

        class Duck : Animal { }

        class Cat : Animal { }

还有NULL检查运算符(?.)也很好用:

void Start()
        {
            Duck duck = new Duck();
            Test(duck);
        }

        void Test(Animal animal)
        {
            //string animalName = animal?.AnimalObject.Name;//报错
            string animalName = animal?.AnimalObject?.Name;//不报错,返回null
            Debug.Log(animalName);
        }

        class AnimalObject { public string Name; }

        class Animal { public AnimalObject AnimalObject; }

        class Duck : Animal { }

        class Cat : Animal { }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值