C# switch on type

c#, switch-statement, typeof

Solution

See another 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.

Problem

Possible Duplicate: C# - Is there a better alternative than this to 'switch on type'? 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: ```

Original source

Related problems