构造函数中的C#默认值与两个用于序列化的构造函数相同
当我为构造函数提供默认值时
public MyClass(string description = null) { .... }
这相当于
public MyClass() { .... } public MyClass(string description) { .... }
在序列化方面 。 换句话说,是否可以使用默认构造函数 ? 实际上它是,但是当我使用序列化时,我会遇到一些问题吗?
不,不幸的是,它不是默认的构造函数。
当你写:
public MyClass(string description = null) { .... }
您实际上是在创建一个接受字符串参数的构造函数,但是有一个属性标记该属性的默认值。 这与在类上具有默认构造函数不同。
是的,在这种情况下你会遇到问题。
我试图通过reflection调用你描述的构造函数,并抛出TargetInvokationException :(参数计数不匹配)。