具有可空数据类型

时间:2018-03-05 15:12:05

标签: c#

当value不为null时,我需要一个可以为null的int并将其格式化为示例。 ToString()不适用于空值。如何处理这个最好的?

int? i = 5555;

string p = i.ToString("#,##0");
Console.WriteLine(p);

3 个答案:

答案 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-conditionalnull-coalesc运算符。如果你可以使用它们取决于编译器所说的C#版本。