VB.NET相当于C#"As"

Joe*_*Fan 78 .net vb.net

在VB.NET中C#As关键字的等价物是什么,如下所示?

var x = y as String;
if (x == null) ...
Run Code Online (Sandbox Code Playgroud)

Han*_*ant 100

这是TryCast:

Dim x As String = TryCast(y, String)
If x Is Nothing Then ...
Run Code Online (Sandbox Code Playgroud)

  • @Mark:*as*运算符也不适用于C#中的值类型. (7认同)
  • +1虽然我认为`TryCast`不是**完全**等同于`as`因为`TryCast`不适用于值类型? (4认同)
  • 那么它适用于可空值的类型......你可以这样做:var x = y as int?; if(x == null)...所以你应该能够在VB中做Dim x = TryCast(y,System.Nullable(Of Integer)) (2认同)
  • 这仅适用于非常精选的情况,因为C#会自动将装箱转换应用于"y".它不能将双转换为int? (2认同)

Mor*_*son 9

Trycast是您正在寻找的.

Dim x = TryCast(y, String)
Run Code Online (Sandbox Code Playgroud)


Guf*_*ffa 6

TryCast:

Dim x = TryCast(y, String)
if (x Is Nothing) ...
Run Code Online (Sandbox Code Playgroud)


Ale*_*fie 5

干得好:

C#代码:

var x = y as String;
if (x == null) ...
Run Code Online (Sandbox Code Playgroud)

VB.NET 等效项:

Dim x = TryCast(y, String)
If (x Is Nothing) ...
Run Code Online (Sandbox Code Playgroud)