Включение кода в новый класс без наследования
От: SeLo  
Дата: 27.02.11 20:38
Оценка:
Вот мысль перед сном меня посетила:
а почему бы не иметь возможность расширять класс через включение какого-либо кода без использования наследования?

Например,

class A {
private int Sum (int a, int b) {
return a+b;
}
}

Другой бы класс мог использовать этот код (что-то типа partial, но имя класса может быть совершенно другим)

class B : include A {
// пользуюсь методами класса A
}

class C : include A {
// ...
}

Скомпилированный бы код включал код из класса как "родной"

Конечно, эти методы класса A скорее всего не зависели бы от внешних переменных и тем самым напоминали бы статические методы или классы расширения,
но мне кажется у такого способа есть некоторые преимущества перед последними:
— методы расширения переполняют Intellisense и появляются везде где надо и не надо.
— статические методы "открыты", а я бы хотел скрыть реализацию или испльзовать ее в ограниченном количестве классов
— что-то еще, не хочу думать

Как бы вы относитесь к такой возможности языка c#?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.