generate - remarks c#
Equivalente de Visual Basic de comprobaciĆ³n de tipo C# (4)
Hasta donde recuerdo
TypeOf data Is System.Data.DataView
Editar:
Como señaló James Curran, esto funciona si los datos también son un subtipo de System.Data.DataView.
Si desea restringir eso a System.Data.DataView solamente, esto debería funcionar:
data.GetType() Is GetType(System.Data.DataView)
¿Cuál es el equivalente de Visual Basic de la siguiente expresión booleana de C #?
data.GetType() == typeof(System.Data.DataView)
Nota: los data
variables se declaran como IEnumerable
.
Prueba esto.
GetType(Foo)
Solo pensé en publicar un resumen para beneficio de los programadores de C #:
C # val is SomeType
En VB.NET: TypeOf val Is SomeType
A diferencia de Is
, esto solo se puede negar como Not TypeOf val Is SomeType
C # typeof(SomeType)
En VB.NET: GetType(SomeType)
C # val.GetType() == typeof(SomeType)
En VB.NET: val.GetType() = GetType(SomeType)
(aunque también funciona, ver a continuación)
C # val.ReferenceEquals(something)
En VB.NET: val Is something
Se puede negar muy bien: val IsNot something
C # val as SomeType
En VB.NET: TryCast(val, SomeType)
C # (SomeType) val
En VB.NET: DirectCast(val, SomeType)
(excepto cuando los tipos implicados implementan un operador de reparto)
También puede usar TryCast y luego verificar por nada, de esta manera puede usar el tipo de casteo más adelante . Si no necesita hacer eso, no lo haga de esta manera, porque otros son más eficientes.
Mira este ejemplo:
VB:
Dim pnl As Panel = TryCast(c, Panel)
If (pnl IsNot Nothing) Then
pnl.Visible = False
End If
DO#
Panel pnl = c as Panel;
if (pnl != null) {
pnl.Visible = false;
}