+1 Хотя я считаю, что TryCastэто не совсем то же самое, asпотому TryCastчто не работает для типов значений?
MarkJ
7
@Mark: оператор as также не работает с типами значений в C #.
Hans Passant
2
Что ж, это работает для типов значений, допускающих значение NULL ... Вы можете: var x = y as int ?; if (x == null) ... так что вы должны иметь возможность выполнять Dim x = TryCast (y, System.Nullable (Of Integer)) в VB
JoelFan
2
Это работает только в очень избранных случаях, потому что C # автоматически применяет преобразование упаковки к «y». Он не может преобразовать, скажем, double в int?
Ханс Пассан
1
@HansPassant C # вряд ли когда-либо "косвенно" преобразует один примитивный тип (или любой другой тип) в другой, вы используете метод Convert.ToXXX
TryCast
это не совсем то же самое,as
потомуTryCast
что не работает для типов значений?Trycast - это то, что вы ищете.
Dim x = TryCast(y, String)
источник
TryCast:
Dim x = TryCast(y, String) if (x Is Nothing) ...
источник
Ну вот:
Код C #:
var x = y as String; if (x == null) ...
Эквивалент VB.NET:
Dim x = TryCast(y, String) If (x Is Nothing) ...
источник
Dim x = TryCast (y, [String])
источник
Dim x = TryCast(y, [String])
С: http://www.developerfusion.com/tools/convert/csharp-to-vb/
источник
Вы можете использовать его с
?
:TryCast(item, String)?.Substring(10)
Это позволяет вам управлять нулевым значением без
if
:)источник