2010-07-02 8 views
37

मुझे यह जांचने की ज़रूरत है कि कोई दिया गया ऑब्जेक्ट एक इंटरफ़ेस लागू करता है या नहीं। सी # में मैं बस यही कहूंगा:सी # "है" कीवर्ड के वीबी.NET समतुल्य क्या है?

if (x is IFoo) { } 

एक TryCast() का उपयोग कर रहा है और उसके बाद Nothing सबसे अच्छा तरीका है के लिए जाँच?

उत्तर

52

निम्नलिखित

if TypeOf x Is IFoo Then 
    ... 
+1

धन्यवाद/टाइपऑफ कीवर्ड वह है जो मैं याद कर रहा था – Tahbaza

6

इस तरह का प्रयास करें:

If TypeOf x Is IFoo Then 
3

VB.NET सी # परिवर्तित करने, अन्य कोड को अनेक रूपांतरण के साथ ही के लिए उपयोग this online web solution

1

सीधा अनुवाद है:

If TypeOf x Is IFoo Then 
    ... 
End If 

लेकिन (अपने दूसरे सवाल का जवाब देने) यदि मूल कोड बेहतर

var y = x as IFoo; 
if (y != null) 
{ 
    ... something referencing y rather than (IFoo)x ... 
} 

फिर, हाँ के रूप में लिखा गया था,

Dim y = TryCast(x, IFoo) 
If y IsNot Nothing Then 
    ... something referencing y rather than CType or DirectCast (x, IFoo) 
End If 

बेहतर है।