我想知道代码中的??标志C#.它是为了什么?我该如何使用它?
怎么样int??它是一个可以为空的int吗?
所以我一直对这个感兴趣?运营商,但仍然无法使用它.当我做的事情时,我通常会想到:
var x = (someObject as someType).someMember;
Run Code Online (Sandbox Code Playgroud)
如果someObject有效且someMember为null,我可以这样做
var x = (someObject as someType).someMember ?? defaultValue;
Run Code Online (Sandbox Code Playgroud)
但是当someObject为null时,我几乎总是遇到问题,而且?? 并没有帮助我使这个更清洁,而不是自己做空检查.
你们找到了什么用途?在实际情况?
我知道这样做(myValue ?? new SomeClass())很像(myValue == null ? new SomeClass() : myValue)
但出于好奇,当我调用一个函数时,是否有任何性能优势
(getResult() ?? new SomeClass()).会getResult()被执行两次吗?这似乎不直观,因为我只指定了一次方法调用.