@Marius:
табличные данные расположения? Нет, в то время как это было стандартно несколько лет назад, это не теперь:-)
Еще одно использование, которое я имел бы для него, будет формы, особенно маркируют: пары текстового поля. Это могло технически быть сделано в полях отделения, но очень, намного легче сделать это в таблицах, и можно утверждать, что label:textbox пары являются на самом деле табличными по своей природе.
я склонен давать маркировке фиксированную ширину или отображать ее на строке выше.
Используйте свойство Value
переменной, допускающей значение NULL:
public xyz (int? a) {
if (a.HasValue) {
blah = DoSomething(a.Value);
...
Метод GetValueOrDefault
также может быть полезен в некоторых ситуациях:
x = a.GetValueOrDefault(42); // returns 42 for null
или
y = a.GetValueOrDefault(); // returns 0 for null
Вы можете преобразовать int?
в int
или использовать a.Value
:
if (a.HasValue)
{
blah = DoSomething((int)a);
// or without a cast as others noted:
blah = DoSomething(a.Value);
}
Если это будет выполнено с помощью else, которое передает значение по умолчанию, вы также можете обработать все в одной строке:
// using coalesce
blah = DoSomething(a?? 0 /* default value */);
// or using ternary
blah = DoSomething(a.HasValue? a.Value : 0 /* default value */);
// or (thanks @Guffa)
blah = DoSomething(a.GetValueOrDefault(/* optional default val */));