VB.NET 等同于 C# 7 的运算符声明模式

VB.NET equivalent for the C# 7 is operator declaration pattern

有没有等同于C# 7 is operator declaration pattern的VB.NET? 请特别注意以下代码示例中的 bmp

public void MyMethod(Object obj)
{
    if (obj is Bitmap bmp)
    {
        // ...
    }
}

或者 is 的短模式匹配语法是 C# 独有的?

编辑:

我已经知道这些语法:

    If TypeOf obj Is Bitmap Then
        Dim bmp As Bitmap = obj
        ' ...
    End If

    Dim bmp As Bitmap = TryCast(obj, Bitmap)
    If bmp IsNot Nothing Then
        ' ...
    End If

我想知道有没有更短的,比如that new C#7 is operator declaration pattern...

非常感谢。

目前没有。如果你想实现这个,你将不得不使用你在问题中已经提到的一些更长的格式。

C# 和 VB 语言并不总是具有相同的功能。

使用一行如果

If obj is bitmap Then Dim bmp = obj

或使用 in-line if(这是 if 函数)

Dim bmp = If(obj is bitmap, obj, Nothing)

本身不完全是pattern-matching,但是做同样的事情。

你不能在 C# 中这样做:

var bmp = obj is bitmap ? obj : nothing;