Судя по вашему сообщению об ошибке, похоже, что user.Reputation
на самом деле Nullable(Of Integer)
, основанный на последнем вопросительном знаке ('Integer?').Это правильно?
Ваш метод расширения расширяет Integer
, а не Integer?
(то есть Nullable(Of Integer)
), следовательно, ошибка.Так что либо предоставьте перегрузку, которая обрабатывает Integer?
, либо вызовите Value
для типа, допускающего значение NULL:
user.Reputation.Value.ToCommaDeliminatedNumber()
Вам нужно будет проверить, что он не равен нулю (Nothing
), иначе будет выдано исключение,Перегруженный метод может выглядеть следующим образом:
<Extension()>
Public Function ToCommaDeliminatedNumber(ByVal int As Integer?) As String
Return int.GetValueOrDefault().ToCommaDeliminatedNumber()
End Function
В случае нулевого значения по умолчанию будет отображаться значение 0.