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;