空条件后跟点运算符 C#

.使用 null 条件运算符后使用该运算符是否安全?.

string x = MaybeReturnsNullMethod();
string y = x?.Substring(2).PadRight(1);

我认为第 2 行上避免可能的 NullReferenceException 的正确代码是

string y = x?.Substring(2)?.PadRight(1);


慕的地8271018
浏览 179回答 1
1回答

狐的传说

表达式x?.SomeMethod().ToString()将null在xis时返回null。这是由于称为null propogation的 C# 行为。即使 Substring 是通过 null 条件运算符调用的,并且是一个 null 值?.Substring 似乎可以返回 null,但语言行为符合您的要求。它使调用短路并立即返回 null,避免了否则会导致 NullReferenceException 的编程错误。这是一个称为空传播的概念。它只是工作。
打开App,查看更多内容
随时随地看视频慕课网APP