【发布时间】:2011-02-20 15:01:10
【问题描述】:
我有一堆需要使用 .Trim() 的字符串,但它们可以为空。如果我能做这样的事情会更简洁:
string endString = startString !?? startString.Trim();
如果左边的部分不为空,则基本上返回右边的部分,否则只返回空值。我刚刚结束了使用三元运算符,但有没有为此目的使用 null-coalescing 运算符?
【问题讨论】:
-
我不这么认为,tbh
!string.IsNullOrEmpty(startString) ? startString.Trim() : null;有什么问题 -
据我了解您的问题,您希望传播 null,即如果字符串为 null,则返回 null。否则,重新调整修剪后的字符串。那是对的吗?如果是这种情况,则没有内置的运算符或方法可以这样做。您可以使用三元运算符(如您所做的那样)或编写方法。
-
我还在等待这个运算符成为语言的一部分:(
-
我喜欢 @sixlettervariables 方法,即使 startString 为空,我们也需要返回
empty string。 -
听起来你真正追求的是
?. :三元运算符;如果左侧操作数不为空,则访问相应的成员,否则计算右侧。示例用法:theValue = someThing?.SomeProperty : defaultValue;这将是一个有用的运算符,但它的语法和绑定将完全不同于该语言中的任何其他内容。
标签: c# null-coalescing-operator