Это похоже на довольно плохой план.Если пользователям этого типа нужны данные, тогда этот тип должен предоставлять методы для возврата этих данных.Почему люди анализируют строковое представление объекта , когда у них есть доступ к объекту ?
Конечно, существуют сценарии сериализации, но они четко определены и редко используют .ToString()
чтобы выполнить свою работу.
Если требуется текстовое представление строки для не выходных целей, то я бы предпочел отдельный метод (который может или не может использовать ToString()
для своей работы.) Этопомогает потребителям, а также разработчикам;было бы очень прискорбно, если бы новый кодер захотел добавить некоторую информацию о дампе отладки в ToString()
и сломал потребителей класса.
UPDATE : Как указывает MattDavey, если вы реализуете IFormattable
, тогда это хороший компромисс: ваши потребители называют ToString()
, но с учетом конкретных форматов и надежного договора о том, что это значит.По-прежнему отличается от того, что делают ваши коллеги, но вариант, который может быть им более удобен.