一个自定义泛型类:
class MyClass<T> 
{
    private T m_tValue = default(T);
    public void setValue(T t) { m_tValue = t; }
}
然后用数组保存T的各种参数的实例:
object[] a = { new MyClass<int>(), new MyClass<string>(), new MyClaass<object>() ... };
现在希望通过这个数组,逐个调用泛型类的方法:
...
((MyClass<object>)a[i]).setValue(x);
编译通过,但运行时发生强制转换异常。
请问这样的情况应该如何解决?

解决方案 »

  1.   

    MyClass<object>

    MyClass<int> 是两种风马牛不相及的东西
      

  2.   

    肯定发生异常
    因为((MyClass<object>)a[i]).setValue(x)把object[] a = { new MyClass<int>(), new MyClass<string>(), new MyClaass<object>() ... };里的每一项都变成了MyClass<object>这种类型的,你试图把一个int或者string类型的值给object,就会出现强转换异常.
      

  3.   

    MyClass<T>:otherinterface
    {}