【发布时间】:2019-02-06 12:57:12
【问题描述】:
如何循环遍历一个泛型参数方法?
我有一个通用方法的集合。
public void DoSomething<T>(List<T> input)
{
// I want to foreach
foreach (var v in input)
{
byte[] data = v.Data;
string name = v.Name;
}
}
我的问题是:我没有在 V 中得到数据和名称。它是通用的。如何实现它
【问题讨论】:
-
你为什么选择
List<T>,而不是List<Foo>,Foo是你的类,它具有Data和Name属性?是因为您有多种类型,它们都具有Data和Name属性吗? -
public void DoSomething<T>(List<T> input) where T: IFoo即T实现了IFoo,它提供了Data和name属性 -
您可以放弃泛型并执行
DoSomething(IEnumerable<IFoo> input)之类的操作,因为IEnumerable是协变的,您可以将实现接口的任何内容与实现IFoo的项目一起传递。 -
@juharr:对不起,我怕我不懂这些,哈哈,我是新手
-
如果您看一下洋葱架构之类的概念,将业务对象(也称为域实体)制作成整个架构共享的领域实体并不是一个坏做法。如果您保持业务对象简单(只是数据桶,我的导师过去常说),并在架构的正确部分(即不在业务对象本身)实现功能,那么这个概念将非常强大和灵活。跨度>
标签: c# .net list generics c#-4.0