是否有与此相当的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 syntax...
非常感谢。
答案 0 :(得分:3)
目前,没有。如果您想要实现此功能,则必须使用您在问题中提到的一些较长格式。
C#和VB语言并不总是具有相同的功能。
答案 1 :(得分:1)
使用单行,如果
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;