Здравствуйте, Sinclair, Вы писали:
B>>2. Если они будут вложенные и как-то конфликтовать, ВСЕГДА можно посидеть и придумать какое-то интересное решение. S>Проблема не в том, чтобы придумать решение. А в том, чтобы это решение не приводило к трудноуловимым багам и WTF. В том числе и в corner cases.
Все подобные вещи надо обдумывать, тестировать, проверять на существующей кодовой базе — НИЧЕГО сложного или нереализуемого.
И по факту, "пришлёпка" сахара в виде мелкомягкой OI — это самая тупая и ограниченная реализация того, что могло бы быть.
S> new Foo(1) { DisplayName = Name + ":" + Number}, S>вроде всё хорошо, да? Name берётся из "текущего" Bar, Number — из "текущего" Foo. S>Теперь автор класса Foo, который ничего не знает о коде Main (и, может быть, даже о коде Bar) публикует версию 2, добавляя невинно выглядящее свойство: S> public string Name {get;set;}
S>Но вопрос даже не в этом — ну, допустим, он понял, в чём дело. Что ему теперь делать? Как вы предлагаете ему писать код Main так, чтобы он работал как в предыдущем случае?