我有这样的课程定义:
[Serializable]
public class MyDictionary: Dictionary<string, object>
{
}
但是,我收到此代码分析警告:
CA2229实现序列化构造函数 使用以下签名向TcpFieldValueDictionary添加构造函数: 'protected TcpFieldValueDictionary(SerializationInfo info,StreamingContext context)'。
但是,通用字典已经具有构造函数,只有public
修饰符。
添加此构造函数很容易(见下文),但为什么要这样做呢?有什么好处?
protected MyDictionary(SerializationInfo info, StreamingContext context)
: base(info, context)
{ }
答案 0 :(得分:8)
构造函数不是继承的。基类型的构造函数没有关系 - 如果你想要一个具有特定签名的构造函数,你必须实现一个。
否则,您只需获取默认的无参数构造函数。