我想在班上做这样的事情:
public IEnumerable<T> ItemsImported { get; set; }
这可能吗?
答案 0 :(得分:3)
选项1
使该类具有通用性:
public class MyClass<T>
{
public IEnumerable<T> ItemsImported { get; set; }
}
选项2
制作一对通用方法:
public IEnumerable<T> GetItemsImported<T>()
{
// ...
}
public void SetItemsImported<T>(IEnumerable<T> value)
{
// ...
}
答案 1 :(得分:1)
如果你有一个泛型类,那么是的,这是可能的:
public class Foo<T>
{
public IEnumerable<T> ItemsImported { get; set; }
}
答案 2 :(得分:1)
是的,但是你的班级也必须是通用的。
public class YourClass<T>()
{
public IEnumerable<T> ItemsImported { get; set; }
}
玩得开心:)
答案 3 :(得分:0)
那么真正的问题应该是:你的班级是通用的吗?或者换句话说:您使用通用模板的意图是什么?如果你的课程必须是通用的,那么建议的解决方案是合适的,否则我会推荐两个中的一个:
items
与界面匹配,然后IEnumerable<IMyItem>
是合适的items
没有共同类型或界面,IEnumerable<object>
应该完成这项工作。当然,您必须检查调用代码中实际对象的类型。