【发布时间】:2017-07-30 23:03:22
【问题描述】:
在 C# 中,很多时候我想根据表达式检索字符串。大多数时候我在视图中这样做。
因此,例如,如果我想根据布尔值 isComplete 打印“完成”,我需要这样做:
<span class="badge">@(isComplete? "Complete" : "")</span>
语言中是否有任何选项可以缩短这种语法,所以我不需要也有空字符串选项?
类似
<span class="badge">@(isComplete => "Complete")</span>
有一些方法可以自己执行此操作,例如接收字符串和布尔值的函数,如果布尔值为 false,则返回 null 或空,但它可能已经存在于语言中。
【问题讨论】:
-
虽然我确实认为这个问题会因为“太宽泛”而被关闭,然后才有真正答案的人可以阐明这一点。
-
对我来说毫无意义;不仅节省最少,而且在可读性方面也令人怀疑。为什么 "" 是自然分配而不是没有分配?当然,对于其他数据类型,其他默认值也适用。而对于对象,什么,null?
标签: c# ternary-operator syntactic-sugar