Вызов базового конструктора в C #

вы должны изменить следующим образом:

private string getValue(float price)
{
    if(price >0)
        return "debit";
    return "credit";
}

//Get value like this
select new {p.PriceID, Type = getValue(p.Price)};
1340
задан Ola Ström 5 April 2019 в 11:32
поделиться

3 ответа

Измените своего конструктора к следующему так, чтобы это вызвало конструктора базового класса правильно:

public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message, string extrainfo) : base(message)
    {
        //other stuff here
    }
}

Примечание, что конструктор не что-то, что можно назвать в любое время в рамках метода. Это - причина, Вы получаете ошибки в своем вызове в теле конструктора.

1684
ответ дан Jon Limjap 5 April 2019 в 11:32
поделиться

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

class MyExceptionClass : Exception
{
     public MyExceptionClass(string message, string extraInfo) : 
         base(ModifyMessage(message, extraInfo))
     {
     }

     private static string ModifyMessage(string message, string extraInfo)
     {
         Trace.WriteLine("message was " + message);
         return message.ToLowerInvariant() + Environment.NewLine + extraInfo;
     }
}
493
ответ дан 19 December 2019 в 20:14
поделиться
public class MyExceptionClass : Exception
{
    public MyExceptionClass(string message,
      Exception innerException): base(message, innerException)
    {
        //other stuff here
    }
}

Вы можете передать внутреннее исключение одному из конструкторов.

27
ответ дан 19 December 2019 в 20:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: