根据此规则,你不能定义一个 struct 的无参构造函数来定制化成员的初始值:
public struct Value
{
public int Value1 { get; }
private...: 为何 C# 不支持定义 struct 的无参构造函数呢?...自己对于此也有些疑惑,搜索了一下相关信息,目前是这么理解的:
直接的一个原因: CLR 不"支持"
大家都知道, C# 是基于 CLR 的, 在 CLR 中(IL层)其实是支持定义 struct 的无参构造函数的...,但是 CLR 并不保证一定能够正确调用 struct 的无参构造函数(更明确的说,就是在某些应该调用 struct 无参构造函数的情况下, CLR 并不会调用 struct 的无参构造函数)....这个问题的答案我并不确定,但很有可能是基于效率,复杂度等工程因素上的考虑,知晓更多信息的朋友可以分享一下~
参考资料
Why can’t I define a default constructor for