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

本文深入解析C#中??空合并运算符和NULL检查运算符(?.)的使用方法与应用场景,包括基本类型和自定义类的非空判断,以及在函数调用中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习来源:https://blog.youkuaiyun.com/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 { }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值