Deutsch

ИИ для программиста?

05.10.24 20:37
Re: ИИ для программиста?
 
alex445 патриот
в ответ AlexNek 05.10.24 20:00, Последний раз изменено 05.10.24 20:56 (alex445)
Если у меня есть операция, которая зависит от другого типа и мне нужно изменять код этой операции при появлении нового типа, то это как минимум
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) и будет брощено исключение. Так?

 

Перейти на