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:
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.