Переопределение ToString
действительно хорошая практика, если вы предоставляете хорошую информацию.
Что касается различных типов ToString
- это возможно, но тогда вы не будете переопределять ToString
, но с перегрузкой (о которой должен знать любой использующий класс).
Я бы реализовал версию lightweight
в качестве переопределения и создал бы функцию VerboseToString
для полного набора свойств.
Если у вас много таких объектов, вы можете создать интерфейс IVerboseString
с помощью метода VerboseToString
и внедрить его в свои объекты.Таким образом, вы можете просто использовать ссылку интерфейса в журнале.