【发布时间】:2011-12-03 02:15:12
【问题描述】:
我想知道在string.Format中是否有格式化NULL值的语法,比如Excel使用什么
例如,使用 Excel,我可以指定格式值{0:#,000.00;-#,000.00,NULL},这意味着如果为正,则将数值显示为数字格式,如果为负,则在括号中显示数字格式,如果值为 null,则显示为 NULL
string.Format("${0:#,000.00;(#,000.00);NULL}", someNumericValue);
编辑
我正在寻找所有数据类型的格式化 NULL/Nothing 值,而不仅仅是数字类型。
我的示例实际上是不正确的,因为我错误地认为 Excel 在值为 NULL 时使用了第三个参数,但它实际上是在值为 0 时使用的。我将它留在那里是因为它是我能想到的最接近的东西我希望做的事情。
我希望避免使用空合并运算符,因为我正在写日志记录,并且数据通常不是字符串
这样写会容易得多
Log(string.Format("Value1 changes from {0:NULL} to {1:NULL}",
new object[] { oldObject.SomeValue, newObject.SomeValue }));
比写
var old = (oldObject.SomeValue == null ? "null" : oldObject.SomeValue.ToString());
var new = (newObject.SomeValue == null ? "null" : newObject.SomeValue.ToString());
Log(string.Format("Value1 changes from {0} to {1}",
new object[] { old, new }));
【问题讨论】:
-
null(Visual Basic 中为Nothing)还是0(零)? -
@dtb 我正在寻找格式化
null/Nothing -
@JimMischel 抱歉,我在想 Excel 使用第三个参数格式化 NULL 值。它实际上是零。我将更新我的问题,但我将 Excel 示例留在那里,因为它是我能想到的最接近我正在寻找的东西。
标签: c# string-formatting string.format