使用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