在使用空条件运算符.
之后使用?.
操作符安全吗?
string x = MaybeReturnsNullMethod();
string y = x?.Substring(2).PadRight(1);
我认为第2行的正确代码是为了避免可能的NullReferenceException
string y = x?.Substring(2)?.PadRight(1);
答案 0 :(得分:0)
当x?.SomeMethod().ToString()
为null
时,表达式x
将返回null
。这是由于称为 null propogation 的C#行为引起的。
即使通过空条件运算符调用了子字符串,并且 空值?子字符串看似会返回空值,即语言 行为可以满足您的要求。它将呼叫短路并 立即返回null,避免了将 否则会导致NullReferenceException。这是一个已知的概念 作为零传播。
它可以正常工作。