+1 Obwohl ich glaube, dass dies TryCastnicht genau gleichbedeutend ist, asweil TryCastes für Werttypen nicht funktioniert?
MarkJ
7
@Mark: Der as- Operator funktioniert auch nicht mit Werttypen in C #.
Hans Passant
2
Nun, es funktioniert für nullbare Werttypen ... Sie können Folgendes tun: var x = y als int?; if (x == null) ... also sollten Sie in der Lage sein, Dim x = TryCast (y, System.Nullable (Of Integer)) in VB
JoelFan
2
Dies funktioniert nur in sehr ausgewählten Fällen, da C # automatisch eine Boxkonvertierung auf "y" anwendet. Es kann nicht beispielsweise ein Double in ein Int konvertieren?
Hans Passant
1
@ HansPassant C # wird kaum jemals "implizit" einen primitiven Typ (oder einen beliebigen Typ) in einen anderen konvertieren. Sie verwenden die Convert.ToXXX-Methode
TryCast
nicht genau gleichbedeutend ist,as
weilTryCast
es für Werttypen nicht funktioniert?Trycast ist das, wonach Sie suchen.
Dim x = TryCast(y, String)
quelle
TryCast:
Dim x = TryCast(y, String) if (x Is Nothing) ...
quelle
Bitte schön:
C # -Code:
var x = y as String; if (x == null) ...
VB.NET-Äquivalent:
Dim x = TryCast(y, String) If (x Is Nothing) ...
quelle
Dim x = TryCast (y, [String])
quelle
Dim x = TryCast(y, [String])
Von: http://www.developerfusion.com/tools/convert/csharp-to-vb/
quelle
Sie können es verwenden mit
?
:TryCast(item, String)?.Substring(10)
Es ermöglicht Ihnen, nullable ohne
if
:) zu verwaltenquelle