【语法糖】Delegate?.Invoke();

你。 提交于 2020-02-29 22:26:55

Delegate?.Invoke(); 格式检测委托是否为空,DoAction1与DoAction2等价,但是语法更简单。

using System;

public class Test: MonoBehaviour
{
    public Action act;

    void Start()
    {
        //DoAction0(); // NullReferenceException: Object reference not set to an instance of an object
        DoAction1();
        
        act = MyAction;
        DoAction1();
        DoAction2();
    }

    void DoAction0()
    {
        act();
    }

    void DoAction1()
    {
        if (act != null)
            act();
    }

    void DoAction2()
    {
        act?.Invoke();
    }

    void MyAction()
    {
        Debug.Log("Action");
    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!