在C#中,我多次想要根据表达式检索字符串。大多数时候我在视图中这样做。
因此,例如,如果我想根据布尔值isComplete
打印“完整”,我需要这样做:
<span class="badge">@(isComplete? "Complete" : "")</span>
语言中是否有任何缩短此语法的选项,所以我不需要也有空字符串选项?
像
这样的东西<span class="badge">@(isComplete => "Complete")</span>
有一些方法可以自己做,比如一个接收字符串和布尔值的函数,如果布尔值为假,则返回null或空,但也许它已经存在于语言中。
答案 0 :(得分:1)
你可以简单地声明一个这样的函数:
public String GetTextOrEmpty( bool control, String text )
{
return control? text : "";
}
然后像这样调用它:
<span class="badge">@(GetTextOrEmpty( isComplete, "Complete" ))</span>
答案 1 :(得分:0)
还没有,但这里有几个选择:
<span class="badge">@isComplete.Complete()</span>
- 扩展方法
<span class="badge">@Complete(isComplete)</span>
- 方法
<span class="badge">@(Complete)isComplete</span>
- 自定义类型explicit operator
<span class="badge">@isComplete</span>
- 自定义布尔类型override ToString