当value不为null时,我需要一个可以为null的int并将其格式化为示例。 ToString()
不适用于空值。如何处理这个最好的?
int? i = 5555;
string p = i.ToString("#,##0");
Console.WriteLine(p);
答案 0 :(得分:3)
如果您使用的是C#6或更高版本,则可以使用安全导航操作符:
string p = i?.ToString("#,##0");
否则你可以使用条件表达式:
string p = i.HasValue ? i.Value.ToString("#,##0") : null;
答案 1 :(得分:0)
检查是否为空。
int? i = 5555;
string p;
if (i.HasValue)
p = i.Value.ToString("#,##0");
else
p = string.Empty;
Console.WriteLine(p);
答案 2 :(得分:0)
实例函数不是可行的方法。如果没有实例(null),则没有任何内容可以调用实例函数。但是,以compare functions:
的形式,已经有一个回答是Object的一部分a.Equals(b)如果a为null则失败。这就是静态函数Object.Equals(a,b)的原因。由于a作为参数给出,因此可以在null上进行检查。就在函数调用a.Equals(b)之前。
另一种方法是在打印前检查null。因为编写起来可能很冗长,所以C#开发人员添加了Null-conditional和null-coalesc运算符。如果你可以使用它们取决于编译器所说的C#版本。