C# 非泛型类中的泛型方法?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/423605/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Generic method in a non-generic class?
提问by John Paul Jones
I'm sure I've done this before, but can't find any example of it! Grrr...
我确定我以前做过这个,但找不到任何例子!咕噜噜...
For example, I want to convert an IList<T>
into a BindingList<T>
:
例如,我想将 an 转换IList<T>
为 a 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;
}
}
采纳答案by Sander
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;
}
}
回答by Ali Ers?z
You can do this by extension method and it would be better.
你可以通过扩展方法来做到这一点,这样会更好。
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;
}
}
回答by bruno conde
Wouldn't this be simpler?
这不是更简单吗?
public static class Extensions
{
public static BindingList<T> ToBindingList<T>(this IList<T> list)
{
return new BindingList<T>(list);
}
}
It's so simple that we don't need an extension method ...
太简单了,我们不需要扩展方法......
Am I missing something?
我错过了什么吗?