如果我从基类继承,并想将继承类的构造函数传递给基类的构造函数,我该怎么做?
例如,如果我从Exception类继承,我希望执行以下操作:
class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extraInfo)
{
//This is where it's all falling apart
base(message);
}
}
基本上,我希望能够将字符串消息传递给基础Exception类。
根据这里列出的一些其他答案,您可以将参数传递给基类构造函数。建议在继承类的构造函数的开头调用基类构造函数。
public class MyException : Exception
{
public MyException(string message, string extraInfo) : base(message)
{
}
}
我注意到,在您的示例中,您从未使用过extraInfo参数,因此我假设您可能希望将extraInfo字符串参数连接到异常的Message属性(似乎在接受的答案和问题中的代码中忽略了这一点)。
这只需调用基类构造函数,然后使用额外的信息更新Message属性即可实现。
public class MyException: Exception
{
public MyException(string message, string extraInfo) : base($"{message} Extra info: {extraInfo}")
{
}
}