Обычно я дома на С#, и я смотрю на проблему с производительностью в каком-то коде VB.NET. Я хочу, чтобы иметь возможность сравнивать что-то со значением по умолчанию для типа (вроде С# t20 > ).
public class GenericThing<T1, T2>
{
public T1 Foo( T2 id )
{
if( id != default(T2) ) // There doesn't appear to be an equivalent in VB.NET for this(?)
{
// ...
}
}
}
Мне показалось, что Nothing
семантически то же самое, но если я это сделаю:
Public Class GenericThing(Of T1, T2)
Public Function Foo( id As T2 ) As T1
If id IsNot Nothing Then
' ...
End If
End Function
End Class
Тогда, когда T2
равно Integer
, а значение id
равно 0
, условие все равно проходит, и тело if
оценивается. Однако, если я это сделаю:
Public Function Bar( id As Integer ) As T1
If id <> Nothing Then
' ...
End If
End Function
Тогда условие не выполняется, и тело не оценивается...