当我为构造函数提供默认值
时 public MyClass(string description = null) { .... }
相当于
public MyClass() { .... }
public MyClass(string description) { .... }
就序列化而言。换句话说,默认构造函数是否可用?实际上它是,但是当我使用序列化时,我会遇到一些问题吗?
答案 0 :(得分:7)
没有。遗憾的是,它不是默认构造函数。
当你写:
public MyClass(string description = null) { .... }
您实际上是在创建一个接受字符串参数的构造函数,但是有一个属性标记该属性的默认值。这与在类上具有默认构造函数不同。
答案 1 :(得分:2)
是的,在这种情况下你会遇到问题。
我试图通过反射调用你描述的构造函数,并抛出TargetInvokationException :(参数计数不匹配)。