ASP.net如何扩展控件或集合

时间:2011-06-09 15:38:36

标签: asp.net list function

我正在尝试扩展List。使用Visual Studio时,我可以使用List对象的所有函数提供不同的代码提示。如何扩展List的功能以显示我的新功能?

public class ListExtensionHelper<T> : System.Collections.Generic.List<T>
{
    public List<T> AwesomeFunction<T>()
    {
    }
}

对于我的生活,我在网上找不到任何关于我如何为列表

做的事情

2 个答案:

答案 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的所有功能。