如果你想switch在一种对象上,最好的方法是什么?
switch
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; } }
我知道这不起作用,但我想知道你如何解决这个问题。if/else在这种情况下陈述是否合适?
if/else
还是您使用开关并添加.ToString()到类型?
.ToString()
如果我 真的 必须switch使用对象类型,我会使用.ToString(). 但是,我会不惜一切代价避免它:IDictionary<Type, int>会做得更好,访问者可能是过分的,但否则它仍然是一个完美的解决方案。
IDictionary<Type, int>