Si heredo de una clase base y quiero pasar algo del constructor de la clase heredada al constructor de la clase base, ¿cómo lo hago?
Por ejemplo,
Si heredo de la clase Exception quiero hacer algo como esto:
class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extraInfo)
{
//This is where it's all falling apart
base(message);
}
}
Básicamente lo que quiero es poder pasar el mensaje de cadena a la clase Exception base.
Modifica tu constructor a lo siguiente para que llame al constructor de la clase base correctamente:
public class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extrainfo) : base(message)
{
//other stuff here
}
}
Ten en cuenta que un constructor no es algo que puedas llamar en cualquier momento dentro de un método. Esa es la razón por la que está recibiendo errores en su llamada en el cuerpo del constructor.
Tenga en cuenta que puede utilizar métodos estáticos dentro de la llamada al constructor base.
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;
}
}