Possible Duplicate:
C# – Is there a better alternative than this to ‘switch on type’?
If you want to switch on a type of object, what is the best way to do this?
Code snippet
private int GetNodeType(NodeDTO node) { switch (node.GetType()) { case typeof(CasusNodeDTO): return 1; case typeof(BucketNodeDTO): return 3; case typeof(BranchNodeDTO): return 0; case typeof(LeafNodeDTO): return 2; default: return -1; } }
I know this doesn’t work that way, but I was wondering how you could solve this. Is an if/else statement appropriate in this case?
Or do you use the switch and add .ToString() to the type?
If I really had to
switchon type of object, I’d use.ToString(). However, I would avoid it at all costs:IDictionary<Type, int>will do much better, visitor might be an overkill but otherwise it is still a perfectly fine solution.