dud*_*er4 -1 c# c#-6.0 null-propagation-operator
以下(C#Interactive)编译但会爆炸.不确定我错过了什么......
class Test { public Func<object> GetSomething = null; }
var t = new Test();
var result = t?.GetSomething();
Run Code Online (Sandbox Code Playgroud)
当然有!
通过你的代码,t不是null,所以?.是多余的.
但t.GetSomething事实并非如此.这就是扔掉它的东西NullReferenceException.
您正在寻找的是:
var result = t.GetSomething?.Invoke();
Run Code Online (Sandbox Code Playgroud)
要了解如何实现新的C#6功能,请查看我的文章.