C# 开启类型

C# switch on type(C# 开启类型)

本文介绍了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# 开启类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:C# 开启类型