我正在尝试扩展List。使用Visual Studio时,我可以使用List对象的所有函数提供不同的代码提示。如何扩展List的功能以显示我的新功能?
public class ListExtensionHelper<T> : System.Collections.Generic.List<T>
{
public List<T> AwesomeFunction<T>()
{
}
}
对于我的生活,我在网上找不到任何关于我如何为列表
做的事情答案 0 :(得分:2)
听起来你正在寻找extension methods,而不是继承。
有一些非常好的例子here。还有一个非常好的扩展库here。
&LT;肥皂盒&GT;
我使用的个人收藏之一是:
public static class StringExtensions
{
public static bool IsNullOrEmpty(this string s)
{
return string.IsNullOrEmpty(s);
}
}
这简直太荒谬了,但我的一个巨大的烦恼是不得不写:
if (string.IsNullOrEmpty(someVariable))
而不是:
if (someVariable.IsNullOrEmpty())
对我而言,这只是我母语的自然构造问题。内置方法听起来像:
对象动词主题
而我的听起来像是:
主题动词
这可能很愚蠢,但是当我想要对某个主题采取行动时,从主题开始对我来说更有意义:) &LT; /肥皂盒&GT;
答案 1 :(得分:2)
如果您尝试将AwesomeFunction
作为扩展方法添加到常规List对象,则需要在静态类中定义扩展方法:
public static class ListExtensions
{
public static List<T> AwesomeFunction<T>(this List<T> list)
{
}
}
否则,你所拥有的代码应该有效;如果你实例化ListExtensionHelper类,它应该具有List和AwesomeFunction的所有功能。