我有一个字符串值,需要将其转换为十进制.
var str = null;
decimal number;
decimal d = Decimal.TryParse(str, out number) ? number : 0M;
Run Code Online (Sandbox Code Playgroud)
它工作正常.
现在我试图通过使用C#6.0 的新Null条件运算符来实现相同的功能 .我怎么能这样做?
我知道这是一次错误的尝试.
var str = null;
decimal d = str?.Convert.ToDecimal(str);
Run Code Online (Sandbox Code Playgroud)
一个空白的(空)字符串不是null,所以你不能使用该操作.
你可以这样做:
decimal d = string.IsNullOrEmpty(str) ? 0M : Convert.ToDecimal(str);
Run Code Online (Sandbox Code Playgroud)
编辑:好的,现在我们开始一个null字符串.在这种情况下...
decimal d = (str == null) ? 0M : Convert.ToDecimal(str);
Run Code Online (Sandbox Code Playgroud)
我仍然不认为这是使用空条件运算符的合适时间,因为当表达式的最终结果可以为null时,这是最有用的 - 在您的情况下不是这样.
| 归档时间: |
|
| 查看次数: |
1827 次 |
| 最近记录: |