+1 Aunque creo TryCastque no es exactamente equivalente a asporque TryCastno funciona para tipos de valor.
MarkJ
7
@Mark: el operador as tampoco funciona en tipos de valor en C #.
Hans Passant
2
Bueno, funciona para tipos de valores que aceptan valores NULL ... Puede hacer: var x = y as int ?; if (x == null) ... entonces debería poder hacer Dim x = TryCast (y, System.Nullable (Of Integer)) en VB
JoelFan
2
Esto solo funciona en casos muy selectos porque C # aplica automáticamente una conversión de boxeo a "y". ¿No puede convertir, digamos, un doble en un int?
Hans Passant
1
@HansPassant C # casi nunca "implícitamente" convertirá un tipo primitivo (o cualquier tipo) en otro, usa el método
TryCast
que no es exactamente equivalente aas
porqueTryCast
no funciona para tipos de valor.Trycast es lo que estás buscando.
Dim x = TryCast(y, String)
fuente
TryCast:
Dim x = TryCast(y, String) if (x Is Nothing) ...
fuente
Aqui tienes:
Código C #:
var x = y as String; if (x == null) ...
Equivalente de VB.NET:
Dim x = TryCast(y, String) If (x Is Nothing) ...
fuente
Dim x = TryCast (y, [String])
fuente
Dim x = TryCast(y, [String])
De: http://www.developerfusion.com/tools/convert/csharp-to-vb/
fuente
Puedes usarlo con
?
:TryCast(item, String)?.Substring(10)
Te permite administrar anulables sin
if
:)fuente