使用Case / Switch和GetType确定对象[重复]

7年前关闭。

C#-是否有比“打开类型”更好的替代方法?

如果要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在这种情况下,声明是否合适?

还是使用开关并添加.ToString()到类型?

回答:

如果 确实 需要处理switch对象类型,则可以使用.ToString()。但是,我会不惜一切代价避免这样IDictionary<Type,

int>做:它将做得更好,访问者可能是一个过大的杀手,但是否则它仍然是一个完美的解决方案。

以上是 使用Case / Switch和GetType确定对象[重复] 的全部内容, 来源链接: utcz.com/qa/408835.html

回到顶部