VB.NET эквивалент для C# 7 Тип сопоставления

Есть ли 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

Я хочу знать, есть ли что-то еще более короткое, например , новый синтаксис C#7...

Большое спасибо.

1 ответ

Решение

В настоящее время нет. Если вы хотите реализовать это, вам придется использовать некоторые из более длинных форматов, которые вы уже упоминали в своем вопросе.

Языки C# и VB не всегда имеют эквивалентные функции.

Используйте одну строку, если

If obj is bitmap Then Dim bmp = obj

или используйте встроенный if (это функция if)

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

Не совсем сопоставление с образцом как таковое, но делает то же самое.

Не могли бы вы сделать это так на C#:

var bmp = obj is bitmap ? obj : nothing;
Другие вопросы по тегам