参数中C#中泛型的问题

3 c# generics parameters

我有这样的课:

Class foo<T> 
{
  anotherfoo<T>;

  foo(){}
  foo(foo<T> aFoo)
  { anotherfoo = aFoo; }
}
void main() 
{
foo<string> obj1 = new foo<string>();
foo<int> obj2 = new foo<int>(obj1);
}
Run Code Online (Sandbox Code Playgroud)

这次我收到一个错误:无法从foo <string>转换为foo <int>.

但是我需要在这个类"foo"中有另一种类型的obj foo,这可能吗?

Ken*_*art 12

你的班级Foo<T>有一个类型的领域Foo<T>.这意味着无论您为类型选择什么,都T将决定字段的类型.

另一种方法可能是提供非泛型基类(或接口):

public abstract class FooBase
{
}

public class Foo<T> : FooBase
{
    private FooBase _anotherFoo;
    ...
}
Run Code Online (Sandbox Code Playgroud)