17
3 минуты назад увидел я в используемой мною библиотеке (под .NET) перегруженную функцию: Connect(), Connect(string Host, int Port). Логика работы функции с параметры очевидна. Откуда берется информация о хосте и порте в перегрузке без параметров, возможно, из предыдущего соединения? XML-комментариев в этой библиотеке нет (а потому IDE не может подсказать ничего кроме сигнатуры). Открываю документацию к библиотеке. В ней все ограничено сигнатурой функции и фразой, что функция Connect соединяется с сервером. Спасибо, КЭП!
Пробовать эмперически? Не наш подход! Открываем .NET Reflector и декомпилируем DLL сборку, видим такой код:
public void Connect() { this.Connect(this.hostname, this.port); } |
Ага, ищем где устанавливаются private члены hostname и port. В теле того же метода с перегрузкой не устанавливаем, и вообще нигде не устанавливаем кроме как только в set-обработчиках этих свойств:
public string Hostname { set { this.hostname = value; } } |
После этого все становится понятным
Слався .NET Reflector, слався рефлексия, нафиг документацию



