Re[15]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 13.11.10 21:11
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Сейчас ты мне пытаешься доказать, что если я использую возможность реализовать более одного интерфейса с разными генерик-параметрами, то значит у меня архитектура кривая?


Не я констатирую факт, что примеры такого использования обычно связаны с кривым дизайном и не демонстрируют насущную необходимость данной фичи.

В общем, я попробую реализовать эту фичу "для галочки", точнее для того чтобы лишить почвы данные споры, но если это окажется очень сложным, то я забью на это и моя совесть будет чиста.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Реализация двух одинаковых интерфейсов в одном типе
От: catbert  
Дата: 13.11.10 22:46
Оценка: 12 (1)
Здравствуйте, VladD2, Вы писали:

VD>Не я констатирую факт, что примеры такого использования обычно связаны с кривым дизайном и не демонстрируют насущную необходимость данной фичи.


Эта фича не необходима, но полезна, поскольку в некоторых случаях позволяет обойтись без создания класса- (и объекта-) обертки, реализующей нужный интерфейс.

Если рантайм позволяет, почему бы не реализовать ее?
Re[15]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.11.10 21:12
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

VD>>Я в своем коде необходимость апкаста воспринимаю как баг. Уж в архитектуру точно не стал бы впихивать.


ВВ>Где ты видишь апкаст?


Не верно выразился. "Явное приведение типов" — так будет вернее.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[17]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 14.11.10 21:39
Оценка:
Здравствуйте, catbert, Вы писали:

C>Если рантайм позволяет, почему бы не реализовать ее?


Объемы переделки. Это не баг, его не исправить изменением 10 строк кода. Это проектное решение для переделки которого потребуется изменить много кода.

Как я уже сказал рядом, я попробую посмотреть что можно сделать. Но переделывать пол компилятора ради этой фигни не буду точно.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Реализация двух одинаковых интерфейсов в одном типе
От: Воронков Василий Россия  
Дата: 15.11.10 09:44
Оценка:
Здравствуйте, VladD2, Вы писали:

ВВ>>Где ты видишь апкаст?

VD>Не верно выразился. "Явное приведение типов" — так будет вернее.

Линком пользуешься? Т.е. неявное приведение типов — это нормально. А когда ты то же самое делаешь явно — это уже баг?
Re[17]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.11.10 17:40
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>Где ты видишь апкаст?

VD>>Не верно выразился. "Явное приведение типов" — так будет вернее.

ВВ>Линком пользуешься?


Иногда.

ВВ>Т.е. неявное приведение типов — это нормально.


А зачем мне оно в LINQ-е?

ВВ>А когда ты то же самое делаешь явно — это уже баг?


Я уже высказал свое мнение. Если тебя это нужно, повторю его. Считаю наличие явного приведение типов в коде — дефектом кода (точнее дизайна). Стараюсь его избегать. Иногда приходится его использовать, так как с ним получается проще. Но только в виде исключения и при этом я четко понимаю, что иду на компромисс.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Реализация двух одинаковых интерфейсов в одном типе
От: Воронков Василий Россия  
Дата: 15.11.10 20:24
Оценка:
Здравствуйте, VladD2, Вы писали:

ВВ>>Т.е. неявное приведение типов — это нормально.

VD>А зачем мне оно в LINQ-е?

public static IEnumerable<TResult> Select<TSource, TResult>(this IEnumerable<TSource> source, Func<TSource, TResult> selector)
{
 ...
}


ВВ>>А когда ты то же самое делаешь явно — это уже баг?

VD>Я уже высказал свое мнение. Если тебя это нужно, повторю его.

А я тебе задал вопрос. Что является "багом"? Явность приведения? Значит ли это, что неявное приведение типов это нормально?
Re[19]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.11.10 20:52
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>А я тебе задал вопрос. Что является "багом"? Явность приведения? Значит ли это, что неявное приведение типов это нормально?


Неявное вниз — это нормально. Явное плохо в любую сторону. В верх по любому очень плохо.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[20]: Реализация двух одинаковых интерфейсов в одном типе
От: Воронков Василий Россия  
Дата: 15.11.10 20:55
Оценка:
Здравствуйте, VladD2, Вы писали:

ВВ>>А я тебе задал вопрос. Что является "багом"? Явность приведения? Значит ли это, что неявное приведение типов это нормально?

VD>Неявное вниз — это нормально. Явное плохо в любую сторону. В верх по любому очень плохо.

Почему неявное вниз — нормально, а явное плохо? Объяснить сможешь?
Re[19]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.11.10 21:29
Оценка:
Здравствуйте, Воронков Василий, Вы много писали.

Это... У меня к тебе вопрос-предложение.

Может вместо того чтобы оттачивать философское мастерство (в баталиях на форумах), лучше примкнешь к проекту и поможешь чем-нить? Ну, или в группу разработки второй версии войдешь?

Было бы куда больше пользы. За одно других меньше от дел праведных отвлекал бы .
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[21]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 15.11.10 21:32
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>А я тебе задал вопрос. Что является "багом"? Явность приведения? Значит ли это, что неявное приведение типов это нормально?

VD>>Неявное вниз — это нормально. Явное плохо в любую сторону. В верх по любому очень плохо.

ВВ>Почему неявное вниз — нормально, а явное плохо? Объяснить сможешь?


Потому что компилятор вопросами замучает.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Реализация двух одинаковых интерфейсов в одном типе
От: IT Россия linq2db.com
Дата: 16.11.10 23:00
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Я повторю еще раз. Мне не известен тип объекта. Я не могу у него вызвать GetOtherEnumerator. Я не знаю — string это, массив или список. Я могу попробовать привести к IEnumerable<>.


Попробуй привести его к IMyEnumerable и уже у него попросить GetMyEnumerable.
Если нам не помогут, то мы тоже никого не пощадим.
Re[14]: Реализация двух одинаковых интерфейсов в одном типе
От: Воронков Василий Россия  
Дата: 17.11.10 07:35
Оценка:
Здравствуйте, IT, Вы писали:

ВВ>>Я повторю еще раз. Мне не известен тип объекта. Я не могу у него вызвать GetOtherEnumerator. Я не знаю — string это, массив или список. Я могу попробовать привести к IEnumerable<>.

IT>Попробуй привести его к IMyEnumerable и уже у него попросить GetMyEnumerable.

Ага, а когда меня спросят, почему я не использую стандартный, сказать, что в Немерле такое не поддерживается, а я типа "за компанию".
Re[15]: Реализация двух одинаковых интерфейсов в одном типе
От: catbert  
Дата: 17.11.10 10:52
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

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


ВВ>>>Я повторю еще раз. Мне не известен тип объекта. Я не могу у него вызвать GetOtherEnumerator. Я не знаю — string это, массив или список. Я могу попробовать привести к IEnumerable<>.

IT>>Попробуй привести его к IMyEnumerable и уже у него попросить GetMyEnumerable.

ВВ>Ага, а когда меня спросят, почему я не использую стандартный, сказать, что в Немерле такое не поддерживается, а я типа "за компанию".


Реализация двух интерфейсов, которые различаются параметром типа — нестандартное решение и в C#. По крайнем мере, в BCL такое не встречается (как я могу судить исходя из моих Reflection- и Linq-скиллов).
Re[6]: Реализация двух одинаковых интерфейсов в одном типе
От: Ilya10k Россия  
Дата: 17.11.10 11:29
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Да, давай. Это будет интересно. А то что-то я себе даже представить такого не могу. Учитывая, что ошибку эту нашел только Ников, я склонен считать, что фича эта все же больше гипотетическая.


Я это использовал. Было нужно для перехода с существующего проекта на Nemerle. В этом форуме отписывался об этом, и в трекере эта бага была.
На тот момент эта бага оказалась критической, чтобы отказаться от Nemerle.
Сейчас я этот весь код заменил (действительно, не сильно нужная фича), но уже ни о каком Nemerle речи не идет.
... << RSDN@Home 1.2.0 alpha 4 rev. 1238>>
Re[15]: Реализация двух одинаковых интерфейсов в одном типе
От: IT Россия linq2db.com
Дата: 17.11.10 14:10
Оценка: +1 -1
Здравствуйте, Воронков Василий, Вы писали:

ВВ>>>Я повторю еще раз. Мне не известен тип объекта. Я не могу у него вызвать GetOtherEnumerator. Я не знаю — string это, массив или список. Я могу попробовать привести к IEnumerable<>.

IT>>Попробуй привести его к IMyEnumerable и уже у него попросить GetMyEnumerable.

ВВ>Ага, а когда меня спросят, почему я не использую стандартный, сказать, что в Немерле такое не поддерживается, а я типа "за компанию".


Нет. Скажешь, что два энумератора на одном объекте — это бред.
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Реализация двух одинаковых интерфейсов в одном типе
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.11.10 14:17
Оценка:
Здравствуйте, Ilya10k, Вы писали:

I>Я это использовал. Было нужно для перехода с существующего проекта на Nemerle.


Т.е. ты добавлял аналогичную багу или глосовал за имеющуюся?
Если не составит труда, можно ссылочку на описание бага?

I>В этом форуме отписывался об этом, и в трекере эта бага была.


Не припомню такого. Можно тоже ссылочку?

I>На тот момент эта бага оказалась критической, чтобы отказаться от Nemerle.

I>Сейчас я этот весь код заменил (действительно, не сильно нужная фича), но уже ни о каком Nemerle речи не идет.

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