C# 开启类型 [英] C# switch on type

查看:12
本文介绍了C# 开启类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

可能重复:
C# - 有没有更好的替代开启类型"?

C# 不支持切换对象的类型.
模拟这个的最佳模式是什么:

C# doesn't support switching on the type of an object.
What is the best pattern of simulating this:

switch (typeof(MyObj))
    case Type1:
    case Type2:
    case Type3:

推荐答案

gjvdkamp 的回答;此功能现在存在于 C# 中

See gjvdkamp's answer; this feature now exists in C#

我通常使用类型和委托的字典.

I usually use a dictionary of types and delegates.

var @switch = new Dictionary<Type, Action> {
    { typeof(Type1), () => ... },
    { typeof(Type2), () => ... },
    { typeof(Type3), () => ... },
};

@switch[typeof(MyType)]();

它有点不灵活,因为你不能通过案例,继续等等.但无论如何我很少这样做.

It's a little less flexible as you can't fall through cases, continue etc. But I rarely do so anyway.

这篇关于C# 开启类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆