如果我从基类继承,并想将继承类的构造函数传递给基类的构造函数,我该怎么做?
例如,如果我从Exception类继承,我希望执行以下操作:
class MyExceptionClass : Exception
{
public MyExceptionClass(string message, string extraInfo)
{
//This is where it's all falling apart
base(message);
}
}
基本上,我希望能够将字符串消息传递给基础Exception类。
来自框架设计指南和FxCop规则。:
1.自定义异常的名称应以异常结尾
class MyException : Exception
2.异常应为公共
public class MyException : Exception
3.CA1032:异常应实现标准构造函数。
公共无参数构造函数。具有一个字符串参数的公共构造函数。具有一个字符串和异常的公共构造函数(因为它可以包装另一个异常)。如果类型未密封,则受保护的序列化构造函数;如果类型已密封,则为私有构造函数。基于MSDN:[可串行化()]公共类MyException:异常{公共MyException(){//添加任何类型特定的逻辑,并提供默认消息。}公共MyException(字符串消息):基本(消息){//添加任何类型特定的逻辑。}公共MyException(字符串消息,异常innerException):基本(消息,内部异常){//为内部异常添加任何特定于类型的逻辑。}受保护的MyException(SerializationInfo信息,StreamingContext上下文):基本(信息,上下文){//实现特定于类型的序列化构造函数逻辑。}}
or
[Serializable()]
public sealed class MyException : Exception
{
public MyException()
{
// Add any type-specific logic, and supply the default message.
}
public MyException(string message): base(message)
{
// Add any type-specific logic.
}
public MyException(string message, Exception innerException):
base (message, innerException)
{
// Add any type-specific logic for inner exceptions.
}
private MyException(SerializationInfo info,
StreamingContext context) : base(info, context)
{
// Implement type-specific serialization constructor logic.
}
}
来自框架设计指南和FxCop规则。:
1.自定义异常的名称应以异常结尾
class MyException : Exception
2.异常应为公共
public class MyException : Exception
3.CA1032:异常应实现标准构造函数。
公共无参数构造函数。具有一个字符串参数的公共构造函数。具有一个字符串和异常的公共构造函数(因为它可以包装另一个异常)。如果类型未密封,则受保护的序列化构造函数;如果类型已密封,则为私有构造函数。基于MSDN:[可串行化()]公共类MyException:异常{公共MyException(){//添加任何类型特定的逻辑,并提供默认消息。}公共MyException(字符串消息):基本(消息){//添加任何类型特定的逻辑。}公共MyException(字符串消息,异常innerException):基本(消息,内部异常){//为内部异常添加任何特定于类型的逻辑。}受保护的MyException(SerializationInfo信息,StreamingContext上下文):基本(信息,上下文){//实现特定于类型的序列化构造函数逻辑。}}
or
[Serializable()]
public sealed class MyException : Exception
{
public MyException()
{
// Add any type-specific logic, and supply the default message.
}
public MyException(string message): base(message)
{
// Add any type-specific logic.
}
public MyException(string message, Exception innerException):
base (message, innerException)
{
// Add any type-specific logic for inner exceptions.
}
private MyException(SerializationInfo info,
StreamingContext context) : base(info, context)
{
// Implement type-specific serialization constructor logic.
}
}