Показать сообщение отдельно
Старый 01.09.2017, 08:38   #7  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Да, это совсем не потомок. Это как-бы "partial class", но не совсем.
Немного похоже на partial class. Partial class это просто способ хранить описание класса в двух файлах. Используется обычно при кодогенерации. Например редактор формы фигачит в один файл и программер его не трогает (потому, что знает, что редактор формы все перетрет), а ручками пишет в другой.


1) Прочитайте и поймите что такое extension method.
2) Генерализируйте это на остальные члены класса.

C# тоже движется в этом направлении.

Фактически, методы расширения - это синтаксический сахар для утилит (вместо StringUtils::convertToKOI8("test") пишем "test".convertToKOI8()).

Так же поля расширения это синтаксический сахар для какой-то более сложной конструкции (вместо GetExtensionOfType<MyInvoiceExtension>(Invoice).myField пишем Invoice.MyField)

Последний раз редактировалось belugin; 01.09.2017 в 08:44.