Мне было интересно, есть ли синтаксис для форматирования значений NULL в string.Format, например, что Excel использует
Например, с помощью Excel я могу указать значение формата {0:#,000.00;-#,000.00,NULL}
, что означает отображение числового значения в виде номера, если оно положительное, формат номера в скобках, если отрицательный, или NULL, если значение равно null
string.Format("${0:#,000.00;(#,000.00);NULL}", someNumericValue);
Edit
Я ищу форматирование значений 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 }));