C# 具有可为空数据类型的ToString()
我需要一个可为null的int,并将其格式化为示例中的值不为null时的格式C# 具有可为空数据类型的ToString(),c#,C#,我需要一个可为null的int,并将其格式化为示例中的值不为null时的格式ToString()不适用于空值。如何最好地处理这个问题 int? i = 5555; string p = i.ToString("#,##0"); Console.WriteLine(p); 只需检查null int? i = 5555; string p; if (i.HasValue) p = i.Value.ToString("#,##0"); else p = string.Empty
ToString()
不适用于空值。如何最好地处理这个问题
int? i = 5555;
string p = i.ToString("#,##0");
Console.WriteLine(p);
只需检查null
int? i = 5555;
string p;
if (i.HasValue)
p = i.Value.ToString("#,##0");
else
p = string.Empty;
Console.WriteLine(p);
只需检查null
int? i = 5555;
string p;
if (i.HasValue)
p = i.Value.ToString("#,##0");
else
p = string.Empty;
Console.WriteLine(p);
如果您使用的是C#6或更高版本,则可以使用安全导航操作符:
string p = i?.ToString("#,##0");
否则,可以使用条件表达式:
string p = i.HasValue ? i.Value.ToString("#,##0") : null;
如果您使用的是C#6或更高版本,则可以使用安全导航操作符:
string p = i?.ToString("#,##0");
否则,可以使用条件表达式:
string p = i.HasValue ? i.Value.ToString("#,##0") : null;
实例函数不是解决问题的方法。如果没有实例(null),那么就没有可以调用实例函数的内容。但是,已经有一个答案以以下形式出现在对象的一部分中: a、 如果a为null,则等于(b)将失败。这就是为什么会有静态函数Object.Equals(a,b)。由于a是作为参数给出的,所以可以在null上检查它。就在函数调用a.Equals(b)之前
另一种方法是在打印前检查null。因为这样写起来很冗长,C#开发人员添加了and运算符。你是否能使用它们取决于你的编译器所使用的C语言版本。实例函数不是最好的选择。如果没有实例(null),那么就没有可以调用实例函数的内容。但是,已经有一个答案以以下形式出现在对象的一部分中: a、 如果a为null,则等于(b)将失败。这就是为什么会有静态函数Object.Equals(a,b)。由于a是作为参数给出的,所以可以在null上检查它。就在函数调用a.Equals(b)之前
另一种方法是在打印前检查null。因为这样写起来很冗长,C#开发人员添加了and运算符。你是否能使用它们取决于你的编译器使用哪种版本的C语言。当i为null时,输出应该是什么?你的代码甚至不能编译。可为空的
ToString
没有参数var p=i?.Value.ToString(“#,##0”)代码>或var p=i.GetValueOrDefault().ToString(“#,##0”)代码>(i??默认值(int)).ToString()
i?.ToString(“#,##0”)当我为null时,输出应该是什么?你的代码甚至都没有编译。可为空的ToString
没有参数var p=i?.Value.ToString(“#,##0”)代码>或var p=i.GetValueOrDefault().ToString(“#,##0”)代码>(i??默认值(int)).ToString()
i?.ToString(“#,##0”)
或如果null
将作为nulli
的结果,则只需i?.ToString(“#,#0”)代码>。有什么区别?它也做同样的事情好吧,它没有那么复杂,但更确切地说,它不值得自己给出答案,但它值得像querent这样不了解这一点的人学习,因此值得添加。这很公平。TBH这是一个一次性的回答,如果null
将作为nulli
的结果,那么只需i?.ToString(“#,#0”)代码>。有什么区别?它也做同样的事情好吧,它没有那么复杂,但更确切地说,它不值得自己给出答案,但它值得像querent这样不了解这一点的人学习,因此值得添加。这很公平。这是一个有点随意的回答