Как подавить автогенерацию метода ToString у record в c#?
===========================================================

 Новые типы record автогенерируют несколько методов, в том числе ToString.   

Если в базовом типе-record переопределить этот метод, то он все равно переопределяется автоматически в дочерних.  

Объявить его как sealed нельзя, т.к. автогенерация все равно неявно произойдет - происходит ошибка компиляции.  

  

Вопрос: можно ли как-то "подавить" автогенерацию? С помощью атрибутов, например.  

  

Дело в том, что весь код генерируется из шаблонов t4 по файлам XML.  

На данный момент вставлен костыль в базовый метод:  

```
public virtual string Presentation() => //... тут дефолтное поведение
public override string ToString() => Presentation();
```
  

и во все автогенерируемые наследники:  

```
public override string ToString() => Presentation();
```
Предполагается, что в наследуемых partial record будет переопределяться при необходимости метод Presentation. 

 В record'е можно реализовать ToString явно - тогда не сгенерируется его дефолтная версия.  

Или можно тупо не использовать рекорды  

  

UPD: Поэкспериментировал с рекордами и вот вывод:  

1.   

`sealed override string ToString()`  

Так можно делать только в sealed record  

2. Рекорд не наследует ToString от родителя - вместо этого он определяет свой собственный  

3. В рекоде можно спокойно переопределить ToString  

Если вы не хотите переопределять ToString во всех рекордах, то, возможно, вам нужны не рекорды, а обычные классы.