То, о чем вы говорите, это метод расширения .Вы можете написать их в C # 3.0 и выше .
Вы должны написать статический класс, содержащий ваши методы расширения, хотя они не обязательно должны находиться внутри одного класса.Затем вы можете использовать их так же, как если бы они были в исходном определении класса.
Примерно так:
public static class ListExtensions
{
public static void OutputAll<T>(this List<T> list)
{
//do something
}
}
Тогда ваш вызывающий код может перейти куда угодно, у кого есть доступ к классу ListExtensions
:
List<Employee> sector01 = new List<Employee>(){new Employee(22), new Employee(35)};
sector01.OutputAll();
Как видите, код для вызова OutputAll
такой же, как вы ожидали.