Я написал эту тривиальную функцию полезности:Generic функции типизированной: возвращает ненулевое значение
public static T isNull<T>(T? v, T d)
{
return v == null ? d : v.Value;
}
цель состоит в том, чтобы избежать раздражающей задачи, как проверка для члена, чтобы быть пустыми, очень распространены в чтении LinQ записей , Проблема заключается в том, что он бросает эту ошибку:
The type 'T' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Nullable< T>'
ошибка кажется законным, в любом случае я желаю я могу сделать что-то вроде этого:
int? myField = record.myField;
int myValue = isNull(myField, 0);
вместо:
int? myField = record.myField;
int myValue = myField == null ? 0 : myField.Value;
Я чувствую например, я пропускаю некоторые базовые знания C#. Существует ли способ выполнить мою задачу?
Для полноты: http://msdn.microsoft.com/en-us/library/ms173224.aspx –
@LynnCrumbling Спасибо, это боль становится ссылки на телефон –