Tôi cần kiểm tra xem một đối tượng cụ thể có thực hiện giao diện hay không. Trong C# Tôi chỉ muốn nói:Tương đương VB.NET của từ khóa C# "là" là gì?
if (x is IFoo) { }
là sử dụng một TryCast()
và sau đó kiểm tra cho Nothing
cách tốt nhất?
Tôi cần kiểm tra xem một đối tượng cụ thể có thực hiện giao diện hay không. Trong C# Tôi chỉ muốn nói:Tương đương VB.NET của từ khóa C# "là" là gì?
if (x is IFoo) { }
là sử dụng một TryCast()
và sau đó kiểm tra cho Nothing
cách tốt nhất?
Hãy thử như sau
if TypeOf x Is IFoo Then
...
Như thế này:
If TypeOf x Is IFoo Then
Sử dụng this online web solution để chuyển đổi C# để VB.NET, cũng như một số chuyển đổi mã khác.
http://www.developerfusion.com/tools/convert/csharp-to-vb/ cũng là một công cụ chuyển đổi tuyệt vời.
Bản dịch trực tiếp là:
If TypeOf x Is IFoo Then
...
End If
Nhưng (để trả lời câu hỏi thứ hai của bạn) nếu mã ban đầu được viết tốt hơn như
var y = x as IFoo;
if (y != null)
{
... something referencing y rather than (IFoo)x ...
}
Sau đó, vâng,
Dim y = TryCast(x, IFoo)
If y IsNot Nothing Then
... something referencing y rather than CType or DirectCast (x, IFoo)
End If
tốt hơn.
cảm ơn/từ khóa TypeOf là những gì tôi đã bỏ lỡ – Tahbaza