.
使用空条件运算符后使用运算符是否安全?.
?
string x = MaybeReturnsNullMethod();
string y = x?.Substring(2).PadRight(1);
我认为第 2 行上避免可能的 NullReferenceException 的正确代码是
string y = x?.Substring(2)?.PadRight(1);
表达式x?.SomeMethod().ToString()
将null
在x
is时返回null
。这是由于 C# 行为称为null propogation。
即使 Substring 是通过空条件运算符调用的,并且一个空值?.Substring 似乎可以返回 null,但语言行为会做你想要的。它使调用短路并立即返回 null,避免了否则会导致 NullReferenceException 的编程错误。这是一个称为空传播的概念。
它只是有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句