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

2020-07-09  本文已影响0人  ShawnWeasley

学习来源: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 { }
上一篇 下一篇

猜你喜欢

热点阅读