вы должны изменить следующим образом:
private string getValue(float price)
{
if(price >0)
return "debit";
return "credit";
}
//Get value like this
select new {p.PriceID, Type = getValue(p.Price)};
Измените своего конструктора к следующему так, чтобы это вызвало конструктора базового класса правильно:
public class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extrainfo) : base(message)
{
//other stuff here
}
}
Примечание, что конструктор не что-то, что можно назвать в любое время в рамках метода. Это - причина, Вы получаете ошибки в своем вызове в теле конструктора.
Обратите внимание, что вы можете использовать статические методы в вызове базового конструктора.
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;
}
}
public class MyExceptionClass : Exception
{
public MyExceptionClass(string message,
Exception innerException): base(message, innerException)
{
//other stuff here
}
}
Вы можете передать внутреннее исключение одному из конструкторов.