Re[5]: Экземплярные методы расширения.
От: michael_isu Беларусь  
Дата: 28.03.13 11:35
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Здравствуйте, michael_isu, Вы писали:


_>>Значит добавил "деревьев", за которыми не видно "леса". Т.е. добавил технических малозначительных методов, которые среди значимых методов DoSome и прочих как бельмо на глазу. Зачем загружать мозг читателя этого кода лишней информацией? (7+-2, ага) Ему скорее всего совершенно не интересен будет этот метод, а его наличием заставляешь загружать его в мозг волей-неволей, а мозги стоит беречь, не только того кто залезет в этот код, но и свои тоже.

WH>
WH>1)Методы для того и разделяют чтобы убирать лишнюю информацию и беречь людям мозг.

Когда методов становится слишком много (кол-во строк кода > 25.000), одним разделением методов не отделаетесь.

WH>3)Убирание метода в другой класс количество сущностей увеличивает. Появляется новый класс.


Ничего страшного.

_>>Предлагаю положить его в TestExtensions и использовать как экстеншн метод. Если в разных местах нужна разная логика хождения — делаешь 2 разных extensions-класса и подключаешь нужный через namespace по месту.

WH>А то, что мне нужно обращаться к данным, которые лежат в экземпляре класса ты конечно не заметил.

Не заметил.
Вообще пихать в один класс диспетчеризацию и бизнес-логику — дурной тон. Конкретно — Test'у нужен только Bar, все остальное нужно оттуда выпилить. Если это сделать — вопрос и проблемы уйдут сами собой.
Re: Экземплярные методы расширения.
От: Pro100Oleh Украина  
Дата: 29.03.13 16:24
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Какие будут мысли насчет данной функциональности?


Категорически против. Синтаксис foo.AsBar() в C# несет семантику: выполнить метод AsBar на основании состояния переменной foo (плюс глобальное статическое состояние). Статик экстеншионы не меняют эту семантику. Вы же хотите прилепить туда еще this.
Pro
Re[2]: Экземплярные методы расширения.
От: artelk  
Дата: 29.03.13 17:13
Оценка:
Здравствуйте, Pro100Oleh, Вы писали:

PO>Здравствуйте, WolfHound, Вы писали:


WH>>Какие будут мысли насчет данной функциональности?


PO>Категорически против. Синтаксис foo.AsBar() в C# несет семантику: выполнить метод AsBar на основании состояния переменной foo (плюс глобальное статическое состояние). Статик экстеншионы не меняют эту семантику. Вы же хотите прилепить туда еще this.


Не вижу проблемы, что будет такое неявное замыкание на this. Для остальных методов же оно есть — нет необходимости всегда писать "this." для доступа к другим методам того же класса.
Re[2]: Экземплярные методы расширения.
От: Ziaw Россия  
Дата: 03.04.13 04:04
Оценка:
Здравствуйте, Pro100Oleh, Вы писали:

PO>Категорически против. Синтаксис foo.AsBar() в C# несет семантику: выполнить метод AsBar на основании состояния переменной foo (плюс глобальное статическое состояние). Статик экстеншионы не меняют эту семантику. Вы же хотите прилепить туда еще this.


Это ничем не отличается от замыкания. Которое вполне укладывается в семантику C#.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.