Я пытался заставить мои общие методы расширения работать, но они просто отказываются, и я не могу понять , почему .
Эта тема мне не помогла, хотя и должна.
Конечно, я посмотрел, как, везде, где я вижу, говорят, что это просто и должно быть в этом синтаксисе:
(В некоторых местах я читал, что мне нужно добавить «где T: [тип]» после объявления параметра, но мой VS2010 просто говорит, что это синтаксическая ошибка.)
using System.Collections.Generic;
using System.ComponentModel;
public static class TExtensions
{
public static List<T> ToList(this IEnumerable<T> collection)
{
return new List<T>(collection);
}
public static BindingList<T> ToBindingList(this IEnumerable<T> collection)
{
return new BindingList<T>(collection.ToList());
}
}
Но это просто не работает, я получаю эту ошибку:
Имя типа или пространства имен 'T' может
не быть найден (вы пропускаете использование
директива или ссылка на сборку?)
Если я тогда заменю
public static class TExtensions
от
public static class TExtensions<T>
выдает эту ошибку:
Метод расширения должен быть определен в
неуниверсальный статический класс
Любая помощь будет высоко ценится, я действительно застрял здесь.