Как мне создать подкласс с конструктором, который по умолчанию содержит ссылку на справку google.com? - PullRequest
2 голосов
/ 02 мая 2011

Я пытаюсь написать код для создания класса EpicFailException в качестве подкласса ApplicationException.Мне нужно добавить конструктор, который по умолчанию для свойства HelpLink равен google.com .Ниже то, что я имею до сих пор.Любые предложения о том, как применить подкласс?

 public class ApplicationException : Exception
 {
     public ApplicationException(string auxMessage, Exception inner) :
         base()
     {
         this.HelpLink = "http://google.com";
     }
 }

Ответы [ 2 ]

1 голос
/ 02 мая 2011

Изменены рекомендации по дизайну класса .NET;текущая рекомендация должна быть производной от Exception, а не от ApplicationException.

Тем не менее, если вам необходимо установить свойство HelpLink в ряде производных исключенийВы можете создать базовый класс, который требует значение свойства HelpLink в качестве параметра, а затем получить его из этого:

public abstract MyExceptionBase : Exception
{
    protected MyExceptionBase(string message, string helpLink) : 
        base(message)
    {
        HelpLink = helpLink;
    }
}

public MyException : MyExceptionBase
{
    public MyException(string message) : 
        base(message, "http://www.google.com")
    { }
}

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

0 голосов
/ 02 мая 2011

Я не уверен, что получу вопрос, но вы, возможно, ищете

base(auxMessage,inner)

вместо

base()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...