空条件后跟点运算符 C#

好战的黑猩猩

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

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

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

string y = x?.Substring(2)?.PadRight(1);
好战的黑猩猩

表达式x?.SomeMethod().ToString()nullxis返回null这是由于 C# 行为称为null propogation

即使 Substring 是通过空条件运算符调用的,并且一个空值?.Substring 似乎可以返回 null,但语言行为会做你想要的。它使调用短路并立即返回 null,避免了否则会导致 NullReferenceException 的编程错误。这是一个称为空传播的概念。

它只是有效。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

试图了解?C#中的(空条件)运算符

来自分类Dev

C#错误与空条件运算符并等待

来自分类Dev

C#:返回对象的空条件运算符

来自分类Dev

方法参数中的 C# 空条件运算符

来自分类Dev

有什么建议吗?运算符/ C ++的空条件运算符?

来自分类Dev

C#6空条件运算符-作为代码切换器?

来自分类Dev

C#6空条件运算符是否检查.Any()?

来自分类Dev

C#6中的空条件运算符和字符串插值

来自分类Dev

C#6空条件运算符不适用于LINQ查询

来自分类Dev

Python等效于C#6中引入的空条件运算符

来自分类Dev

Weakreferences和空条件运算符的怪异C#GC行为

来自分类Dev

有没有办法在C#5中模仿C#6空条件运算符

来自分类Dev

关于C#的点(。)运算符

来自分类Dev

关于C#的点(。)运算符

来自分类Dev

C运算符+ =序列点?

来自分类Dev

C ++中的条件运算符

来自分类Dev

C#中的条件运算符

来自分类Dev

C ++ &&运算符未评估条件

来自分类Dev

C ++中的条件运算符

来自分类Dev

C 编程条件运算符

来自分类Dev

C# ?。条件运算符

来自分类Dev

为什么C#空条件运算符不能与Unity可序列化变量一起使用?

来自分类Dev

Ruby空条件运算符

来自分类Dev

什么是C ++运算符->。(箭头点运算符)可以在boost文档中找到?

来自分类Dev

c ++重复箭头运算符取消引用性能vs点运算符

来自分类Dev

在C ++中设计点积运算符

来自分类Dev

如何为类似于空条件运算符的集合创建空条件运算符?

来自分类Dev

C ++运算符[]

来自分类Dev

C ++运算符“?:”