我有一组实现接口(IMyClass
)的类(MyClass1, MyClass2, MyClass3
)。使用通用类型或接口的C#集合
我感兴趣的创建方法来填充,并返回有共同的接口MyClass
X
(List<IMyClass>
)对象的列表(Collection.Generics.Lists<>
)。但是如何?
每个班级都有一个构造函数MyClass
X
它做了一些不同的事情。所以我不能创建一个BaseClass并为所有人使用通用构造函数。
通过界面我不能这样做:
public List<IMyClass> Fill(string[] ItemsPassedByParam, IMyClass InstanceOfMyClassX)
List MyList = new List<IMyClass>();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new IMyClass (item)); //can't do new from an Interface!!
}
}
我也尝试过使用泛型类型,TMyClass在下面的例子,但也很适合我(虽然我不是泛型类型非常深刻的概念):
public List<TMyClass> Fill(string[] ItemsPassedByParam, Type TypeOfMyClassX)
List MyList = new List <TMyClass>();
foreach (item in ItemsPassedByParam)
{
MyList.Add (new TMyClass (item)); //can't do new from a Generic Type!!
}
}
我试图也来外部的MyClass
X
在方法的构造内的代码,但我不能调用该方法因为去对象未初始化(没有new()
)。
在这些情况下是哪种解决方案?
提前致谢!
什么是'item'?它是否确定类型? – cjk 2010-08-19 15:26:42
此外,什么是 “新目录();”应该是?没有什么可以想象的编译。 –
2010-08-19 15:28:25