+1 Chociaż uważam, że TryCastnie jest dokładnie równoważne, asponieważ TryCastnie działa dla typów wartości?
MarkJ
7
@Mark: operator as również nie działa na typach wartości w C #.
Hans Passant
2
Cóż, to działa w przypadku typów wartości dopuszczających wartość null ... Możesz zrobić: var x = y as int ?; if (x == null) ... więc powinieneś być w stanie zrobić Dim x = TryCast (y, System.Nullable (Of Integer)) w VB
JoelFan
2
Działa to tylko w bardzo wybranych przypadkach, ponieważ C # automatycznie stosuje konwersję pudełkową na „y”. Nie może przekonwertować, powiedzmy, double na int?
Hans Passant
1
@HansPassant C # prawie nigdy nie będzie "implicity" konwertować jednego typu pierwotnego (lub dowolnego typu) na inny, używasz metody Convert.ToXXX
TryCast
nie jest dokładnie równoważne,as
ponieważTryCast
nie działa dla typów wartości?Trycast jest tym, czego szukasz.
Dim x = TryCast(y, String)
źródło
TryCast:
Dim x = TryCast(y, String) if (x Is Nothing) ...
źródło
Proszę bardzo:
Kod C #:
var x = y as String; if (x == null) ...
Odpowiednik VB.NET:
Dim x = TryCast(y, String) If (x Is Nothing) ...
źródło
Dim x = TryCast (y, [String])
źródło
Dim x = TryCast(y, [String])
Od: http://www.developerfusion.com/tools/convert/csharp-to-vb/
źródło
Możesz go używać z
?
:TryCast(item, String)?.Substring(10)
Pozwala na zarządzanie wartością null bez
if
:)źródło