Образцовая документация

Новости

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, слався рефлексия, нафиг документацию :)

public void Connect()
{
    this.Connect(this.hostname, this.port);
}

Оставить комментарий