Здравствуйте, Sharov, Вы писали:
C>>Никогда не видел такое?
C>>C>> public MyException()
C>> {
C>> }
C>> public MyException(string? message) : base(message)
C>> {
C>> }
C>> public MyException(string? message, Exception? innerException) : base(message, innerException)
C>> {
C>> }
C>> ...
C>>
S>Так что не так и что предлагается улучшить?
S>Т.е. неохота всей этой писанины, если будет вызываться только один контсруктор, соотв. только его и наследуем?
S>Так или не так?
Самое забавное, что эта реализация тоже не ок. Если вдруг появится необходимость в дополнительной инициализации (например добавится новое поле или еще что-то), то придется дублировать код инициализации во всех трех конструкторах.
Идиоматичней было бы так:
public MyException() : this(null, null)
{
}
public MyException(string? message) : this(message, null)
{
}
public MyException(string? message, Exception? innerException) : base(message, innerException)
{
// any additional init goes here ...
Console.WriteLine("MyException was created at {0}", DateTime.UtcNow);
}
...
Но это рушит чью-то картину необходимости и тем более корректности автоматической генерации конструкторов.