【发布时间】:2020-01-24 11:27:53
【问题描述】:
我误解了一些空条件运算符?。机制
获取字符串变量长度的示例
object variable = null;
int? Length = variable?.ToString()?.Trim()?.Length;
我们是否应该在需要测试的对象成员的所有级联属性中使用?. 运算符?
变量对象为空,因此使用空条件运算符进行测试应该只针对ToString() 方法或ToString() 的级联成员?
这个
?.ToString()?.Trim()?.Length
或
?.ToString().Trim().Length
我认为如果ToString 为空,则不需要在它之后测试下一个成员。
【问题讨论】:
-
int? Length =...,请注意?或int Length = ... ?? 0; -
a) 你可以自己测试一下。 b) 你只需要
variable?一个(假设ToString永远不会返回null,这是一个相当安全的选择)。 -
这取决于您呼叫的成员。可以为空吗?例如。
Trim从不返回null、ToString但是可以。 -
它不适用于 ToString()。这是例如,但也许你有 Image 或任何你需要许多嵌套成员的东西。
-
如果方法不能返回
null,那么后面不需要?。规则就这么简单。
标签: c# .net operators null-conditional-operator