首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >与VB.NET 7等价的C# 7是操作符声明模式

与VB.NET 7等价的C# 7是操作符声明模式
EN

Stack Overflow用户
提问于 2017-11-26 11:09:50
回答 2查看 2.2K关注 0票数 20

是否有一个与VB.NET等价的C# 7是操作符声明模式。?请特别注意以下代码示例中的bmp

代码语言:javascript
复制
public void MyMethod(Object obj)
{
    if (obj is Bitmap bmp)
    {
        // ...
    }
}

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

编辑:

我已经知道这些语法:

代码语言:javascript
复制
    If TypeOf obj Is Bitmap Then
        Dim bmp As Bitmap = obj
        ' ...
    End If

代码语言:javascript
复制
    Dim bmp As Bitmap = TryCast(obj, Bitmap)
    If bmp IsNot Nothing Then
        ' ...
    End If

我想知道的是是否有更短的东西,比如新的C#7是操作符声明模式..。

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-04 16:14:22

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

C#和VB语言并不总是有相同的特性。

票数 3
EN

Stack Overflow用户

发布于 2019-05-14 15:38:27

如果使用一行

代码语言:javascript
复制
If obj is bitmap Then Dim bmp = obj

或者使用内联if (这是if函数)。

代码语言:javascript
复制
Dim bmp = If(obj is bitmap, obj, Nothing)

不是完全的模式匹配本身,但是做同样的事情。

你不能在C#中这样做吗:

代码语言:javascript
复制
var bmp = obj is bitmap ? obj : nothing;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47495455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档