Код, с которым я хочу работать:
<Extension()>
Public Function NValue(Of T)(ByVal value As Nullable(Of T), ByVal DefaultValue As T) As T
Return If(value.HasValue, value.Value, DefaultValue)
End Function
Итак, в основном я хочу, чтобы он выдавал значение по умолчанию для обнуляемого объекта, и в зависимости от того, является ли он нулевым или нет, онвыдаст свое собственное значение или значение по умолчанию.
Таким образом, с объектом Date он сделает это, что работает, но я не могу заставить его работать с универсальным T:
<Extension()>
Public Function NValue(ByVal value As Date?, ByVal DefaultValue As Date) As Date
Return If(value.HasValue, value.Value, DefaultValue)
End Function
Dim test As Date? = Nothing
Dim result = test.NValue(DateTime.Now)
Переменная 'result' теперь имеет текущий DateTime.
Когда я пробую это с T, я получаю это как ошибку (которую Visual Studio помещает в T в Nullable (Of T): Type 'T'должен быть типом значения или аргументом типа, ограниченным значением' Structure 'для использования с' Nullable 'или модификатором Nullable'? '.
Большое спасибо за любую помощь!
Привет