Visual Basic equivalent of C# type check
As I recall
TypeOf data Is System.Data.DataView
Edit:
As James Curran pointed out, this works if data is a subtype of System.Data.DataView as well.
If you want to restrict that to System.Data.DataView only, this should work:
data.GetType() Is GetType(System.Data.DataView)
Just thought I'd post a summary for the benefit of C# programmers:
C# val is SomeType
In VB.NET: TypeOf val Is SomeType
Unlike Is
, this can only be negated as Not TypeOf val Is SomeType
C# typeof(SomeType)
In VB.NET: GetType(SomeType)
C# val.GetType() == typeof(SomeType)
In VB.NET: val.GetType() = GetType(SomeType)
(although Is
also works, see next)
C# val.ReferenceEquals(something)
In VB.NET: val Is something
Can be negated nicely: val IsNot something
C# val as SomeType
In VB.NET: TryCast(val, SomeType)
C# (SomeType) val
In VB.NET: DirectCast(val, SomeType)
(except where types involved implement a cast operator)
You could also use TryCast and then check for nothing, this way you can use the casted type later on. If you don't need to do that, don't do it this way, because others are more efficient.
See this example:
VB:
Dim pnl As Panel = TryCast(c, Panel)
If (pnl IsNot Nothing) Then
pnl.Visible = False
End If
C#
Panel pnl = c as Panel;
if (pnl != null) {
pnl.Visible = false;
}
Try this.
GetType(Foo)