c#构造函数中的默认值与序列化的两个构造函数相同

本文关键字:构造函数 两个 序列化 默认值 | 更新日期: 2023-09-27 18:13:42

当我提供一个默认值为

的构造函数时
  public MyClass(string description = null) { .... }

是否等价于

  public MyClass() { .... }
  public MyClass(string description) { .... }

序列化方面。换句话说,默认构造函数可用吗?实际上是这样,但是当我使用序列化时,会遇到一些问题吗?

c#构造函数中的默认值与序列化的两个构造函数相同

No。可惜它不是默认构造函数。

当你写:

public MyClass(string description = null) { .... }

你实际上是在构造一个接受字符串参数的构造函数,但有一个属性标记该属性的默认值。

是的,那样的话你就有问题了。

我试图通过反射调用你描述的构造函数,它抛出TargetInvokationException:(参数计数不匹配)。