Почему intellisense не показывает соответствующие методы в соответствии с тем, что я передаю?
-
06-07-2019 - |
Вопрос
Как, например, есть 3 метода:
Modify ( int arg )
Modify ( double arg )
Modify ( string arg )
И если я передаю переменную типа double, она должна автоматически перейти к методу # 2, а не прокручивать меня вниз, чтобы увидеть, есть ли метод, который получает значение double, верно?
Решение
Я могу думать о двух причинах. Во-первых, Intellisense должен был бы знать о правилах неявного преобразования и тому подобном, и в конечном итоге он оказался таким же умным, как и компилятор. Вероятно, они просто решили, что простая реализация была достаточно хороша (представьте себе случаи более сложные, чем у вас - например, передача результатов функции непосредственно другой функции). Кроме того, я думаю, что было бы неприятно, если бы Intellisense скрывал конкретную перегрузку, которую я хотел вызвать (потому что, возможно, аргумент имел неправильный тип) - я бы предпочел закончить написание кода с нужной мне функцией, а затем вернуться и исправить любые ошибки.