我有一个复杂的问题需要解决。没有泛型比较
我有一个对象列表,虽然后来列表将填充两种不同类型的实例。
第一类是MyFirstType<T1, T2>
和第二类是MySecondType<T>
现在我需要,虽然对象列表中运行,并询问这两个一个是每个项目。然后我需要在物品上做一些自定义逻辑。
例如:
foreach(object obj in list)
{
if(obj is MyFirstType<T1, T2>)
{
// do something
}
else if(obj is MySecondType<...>)
{
}
}
的问题是T或T1和T2可以是任何类型的让我怎么写出这样的如果 - 是关键字语句如果MyFirstType但不仿制药里面,只有comparies? if(obj is MyFirstType<T1, T2>)
不起作用,因为它需要T1和T2的具体类型。
像刚才提到的那样,只需要比较没有T1和T2。任何想法如何解决这个问题?
http://stackoverflow.com/q/457676 –
这类型检查几乎总是采取错误方法解决问题的产物;你能否抽象一点,详细说明实际的任务是什么以及你如何解决它? –
@AntP谢谢,但不是谢谢问题是我不应该改变我的设计或不。很明显,问题是什么。如果你不能解决这个问题,请不要开始讨论如何/应该如何做对。 –