【发布时间】:2011-08-01 03:58:29
【问题描述】:
我有一个通用集合,其中包含集合中的项目需要调用的方法。每个项目都有对通用集合的引用。问题是我不能使用每个项目的类型作为传递给泛型集合的类型。
思路是这样的(我知道不会编译):
public class MyCollection<T>
{
public void Call(T item) { ... }
}
public abstract class MyItemBase
{
protected MyCollection<typeof(this)> _collection;
public MyItem(MyCollection<typeof(this)> collection)
{
this._collection = collection;
}
public DoSomething()
{
this._collection.Call(this);
}
}
public class MyItem : MyItemBase
{
}
显然,您不能声明 MyCollection<typeof(this)>,但我认为通过这种方式编写它,您可以大致了解我想要做什么。本质上,我希望抽象类对集合的引用 mean MyCollection<MyClass>。
有什么办法可以做到吗?
【问题讨论】:
标签: generics c#-4.0 collections types