ИИ для программиста?
Если у меня есть операция, которая зависит от другого типа и мне нужно изменять код этой операции при появлении нового типа, то это как минимум
https://solidbook.vercel.app/ocp
Ну есть у вас класс конвертера. Добавили вы новый численный тип - как этот конвертер расширять будете? Лишние нагромождения получатся.
Мне другое интересно. Вот можно сделать проверку типа внутри одного метода примерно так (условный код)
if (Type1)
else if (Type2)
else NotSupportedException
А как такое же сделать для перегрузок? Сработает ли подобная конструкция?
Method(Type1 param) => // do something
Method(Type2 param) => // do something
Method(object param) => NotSupportedException
Вроде по логике выбора перегрузки выбирается сначала такой же тип, затем более близкий. Какой именно близкий - трудно найти. В спецификации как-то размазано по куче разделов. Разве что опытным путём устанавливать. Но вроде если не будет найдена перегрузка с точно таким же типом, то попытается использовать перегрузку с типов object, и именно в нём мы может отслеживать все неподдерживаемые типы. Т.е. если появляется новый тип, и для него нет перегруженного метода - вызов Method(variableWithNewType) приведёт к вызову метода Method(object param) и будет брощено исключение. Так?