Re[6]: [C#] горшочек, не вари
От: · Великобритания  
Дата: 31.10.24 11:55
Оценка: 1 (1)
Здравствуйте, rFLY, Вы писали:

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


FLY>·>Это осложняет жизнь разработчикам библиотек и пользователям. Допустим, есть CoolLib v1.0 с таким методом void AddItem(SimpleItem item). Уже становится невозможно просто добавить void AddItem(SpecialItem item) в CoolLib v1.1 не сломав совместимость.

FLY>·>Т.е. overloading стал неюзабельным.
FLY>А как компилятор это пропускает или в AddItem принимает object без конкретного типа?
Я не понял вопрос. Повторюсь:
CoolLib v1.0:
void AddItem(SimpleItem item) {doStuff();}

В юзерском коде в 100500 местах:
AddItem(new("foo", 123, false));


CoolLib v1.1:
void AddItem(SimpleItem item) {doStuff();}

void AddItem(SpecialItem item) {doSpecialStuff();}


весь юзерский код при апдейте v1.0 -> v1.1 перестаёт компиляться с ambiguity.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.