很多时候我会输入文本,如果它是空的(例如用户没有输入任何文本),我想将一个空值发送到DB查询。
我不想发送String.Empty.
(或者""
)。
因此我经常这样做:
var mySqlValue = string.IsNullOrEmpty( tbCustomerId.Text)?null:tbCustomerId.Text;
我觉得这看起来很丑陋。.NET有很多其他解决方案来处理相反的情况:
string.IsNullOrEmpty
string.IsNullOrWhiteSpace
myProblemVal ?? myDefultVal
在C#中是否有任何内置的方法可以让我以更短的方式实现相反的操作?
我知道可以通过编写自己的扩展方法来解决这个问题,我也知道如何做到;但这不是我感兴趣的解决方案。
我正在寻找类似于"如果为空,则null
"这样的代码。
.Text
是一个属性(即调用get
访问器),第一次调用getter时,它可能返回一个长字符串,比如“约翰道”。然后我们到了评估三元?:
条件运算符的最后一个“组件”。但这将再次调用Text
getter,这次它可能返回""。因此,原则上您必须获取Text
的本地变量副本。当然,如果使用扩展方法,则不需要这样做。 - Jeppe Stig NielsenTrim()
操作,这在单个表达式中很难实现。 - toddmo