ASP.net как расширить элемент управления или коллекцию - PullRequest
0 голосов
/ 09 июня 2011

Я пытаюсь расширить список.При использовании Visual Studio есть разные подсказки кода для всех функций, которые я могу использовать с объектом List.Как я могу расширить функциональность Списка, чтобы показать мою новую функцию?

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

За свою жизнь я не смог найти в Интернете ничего о том, как бы я сделал это для Списка

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

Если вы пытаетесь добавить AwesomeFunction в качестве метода расширения к обычному объекту List, тогда вам нужно определить метод расширения в статическом классе:

public static class ListExtensions
{
    public static List<T> AwesomeFunction<T>(this List<T> list)
    {
    }
}

В противном случае, у вас есть коддолжно сработать;если вы создаете экземпляр класса ListExtensionHelper, он должен иметь все функции List, а также AwesomeFunction.

2 голосов
/ 09 июня 2011

Похоже, вы ищете методы расширения , а не наследование.

Есть несколько действительно хороших примеров здесь . Есть также действительно хорошая библиотека расширений здесь .


Вот одно из моих личных предпочтений:

public static class StringExtensions
{
  public static bool IsNullOrEmpty(this string s)
  {
    return string.IsNullOrEmpty(s);
  }
}

Это смехотворно просто, но моя огромная любимая мозоль должна написать:

if (string.IsNullOrEmpty(someVariable))

вместо:

if (someVariable.IsNullOrEmpty())

Для меня это просто вопрос естественной конструкции моего родного языка. Встроенный метод звучит так:

объект глагола субъект

тогда как мой звучит как:

глагол субъекта

Это, наверное, глупо, но когда я хочу воздействовать на предмет, для меня имеет больше смысла начинать с предмета :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...