以下是C#布尔表达式的Visual Basic等效形式是什么?
data.GetType() == typeof(System.Data.DataView)
注意:变量 data
声明为 IEnumerable
。
据我回忆
TypeOf data Is System.Data.DataView
编辑:
正如James Curran所指出的那样,如果数据是System.Data.DataView的子类型,则这个方法也适用。
如果您想将其限制为仅限于System.Data.DataView,则应该使用以下方法:
data.GetType() Is GetType(System.Data.DataView)
Is
实际上与 object.ReferenceEquals
完全相同。但是,Typeof … Is
确实等同于 C# 的 is
运算符。 - Konrad Rudolph为了C#程序员的方便,我想发布一个总结:
val is SomeType
在VB.NET中:TypeOf val Is SomeType
与Is
不同的是,只能用Not TypeOf val Is SomeType
否定。
typeof(SomeType)
在VB.NET中:GetType(SomeType)
val.GetType() == typeof(SomeType)
在VB.NET中:val.GetType() = GetType(SomeType)
(不过Is
也可以,见下文)
val.ReferenceEquals(something)
在VB.NET中:val Is something
可以很好地否定:val IsNot something
val as SomeType
在VB.NET中:TryCast(val, SomeType)
(SomeType) val
在VB.NET中:DirectCast(val, SomeType)
(除涉及实现转换运算符的类型之外)
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;
}
TryCast
或 as
就可以了。 - Teejay试试这个。
GetType(Foo)