非泛型类中的泛型方法?
问题描述:
我确信我以前做过这个,但找不到任何示例!哎呀...非泛型类中的泛型方法?
例如,我想转换一个IList<T>
成BindingList<T>
:
public class ListHelper
{
public static BindingList<T> ToBindingList(IList<T> data)
{
BindingList<T> output = new BindingList<T>();
foreach (T item in data)
output.Add(item);
return output;
}
}
答
ToBindingList <T> (...)
public class ListHelper
{
public static BindingList<T> ToBindingList<T>(IList<T> data)
{
BindingList<T> output = new BindingList<T>();
foreach (T item in data)
{
output.Add(item);
}
return output;
}
}
答
您可以通过扩展方法做到这一点,它会更好。
public static class Extensions
{
public static BindingList<T> ToBindingList<T>(this IList<T> list)
{
BindingList<T> bindingList = new BindingList<T>();
foreach (var item in list)
{
bindingList.Add(item);
}
return bindingList;
}
}
+0
这就是我的做法...甚至可能来自IEnumerable
答
难道这不是更简单吗?
public static class Extensions
{
public static BindingList<T> ToBindingList<T>(this IList<T> list)
{
return new BindingList<T>(list);
}
}
它是如此简单,我们并不需要一个扩展方法...
我缺少的东西?
这里的实际问题是什么?是的,泛型方法在非泛型类中很好(System.Linq.Enumerable可能是最大的例子)。 – 2009-01-08 08:53:18
@Jon - 他错过了ToBindingList中的 –
2009-01-08 08:56:59