Re[4]: Багофича C# - object initializer
От: Baiker  
Дата: 23.07.24 15:02
Оценка: :)
Здравствуйте, 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 так, чтобы он работал как в предыдущем случае?


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