Tôi thường ở nhà trong C#, và tôi đang xem xét một vấn đề hiệu suất trong một số mã VB.NET - Tôi muốn có thể so sánh một cái gì đó với giá trị mặc định cho một loại (loại giống như từ khóa của C# 'default
).Tương đương với `mặc định` của C# trong VB.NET là gì?
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(?)
{
// ...
}
}
}
tôi được dẫn dắt để tin rằng Nothing
là ngữ nghĩa giống nhau, nhưng nếu tôi làm:
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
Sau đó, khi T2
là Integer
, và giá trị của id
là 0
, tình trạng này vẫn trôi qua, và phần thân của if
được đánh giá. Tuy nhiên nếu tôi làm:
Public Function Bar(id As Integer) As T1
If id <> Nothing Then
' ...
End If
End Function
Sau đó, tình trạng này không được đáp ứng, và cơ thể không được đánh giá ...
có thể trùng lặp của [VB tương đương với mặc định của C# (T)] (http://stackoverflow.com/questions/833791/vb-equivalent-for-cs-defaultt) – decyclone
@ decyclone câu hỏi đó không bao gồm trường hợp chung ; và trong thực tế trong câu hỏi của tôi, tôi thấy rằng tôi biết sử dụng 'Nothing' trong hầu hết các trường hợp ... –