Я только что наткнулся на код, который переопределяет ToString ()
и возвращает некоторую важную информацию (не только отладочную информацию). Пользователи этого типа вызывают ToString ()
и анализируют эти важные данные.
Мое мнение, читая различные фрагменты и фрагменты на протяжении многих лет, заключается в том, что ToString ()
имеет довольно слабый контракт
, т.е. переопределяет его (, если хотите ), чтобы отобразить кое-что значимое.
Видите, я сказал отобразить там? Код, с которым я столкнулся, полагался на текстовое представление экземпляров этого типа, чтобы быть очень конкретным; добавление чего-либо, кроме ожидаемого, может вызвать всевозможные проблемы.
Итак, мой вопрос: если текстовое представление объекта является критическим, следует ли использовать ToString ()
или более явный метод / свойство, например AsText
?