MSDN 上关于 C# struct 的一个疑惑,求解答

2016-03-15 16:17:41 +08:00
 sophie2805

https://msdn.microsoft.com/zh-cn/library/saxz13w4(v=vs.80).aspx

新手,跟着 MSDN 上的 C#文档学习。

关于 struct ,它写道:
结构与类共享几乎所有相同的语法,但结构比类受到的限制更多:

•在结构声明中,除非字段被声明为 const 或 static ,否则无法初始化。

•结构不能声明默认构造函数(没有参数的构造函数)或析构函数。


很是不解,这句话给我的直观感觉是: struct 的成员必须定义成 const 或者 static ,不然没办法初始化。
但实际上 struct 的成员可以不是 const/static

是不是我的理解有偏差。。。

2064 次点击
所在节点    问与答
3 条回复
Archangel_SDY
2016-03-15 17:40:02 +08:00
是指你不能给成员字段一个初始化的值吧.
KexyBiscuit
2016-03-15 18:07:25 +08:00
Initialize 指的是为这个 field 赋初始值, declare 是没问题的,所以 struct 的成员字段可以不是 const 或 static 。

另外……

请阅读 MSDN Library 的英文版并选择最新的文章版本……

https://msdn.microsoft.com/en-us/library/saxz13w4.aspx
wizardforcel
2016-03-16 10:13:33 +08:00
实例字段无法手动初始化,也不能自定义默认构造器(无参构造器)。默认构造器的行为是将所有字段赋默认值。

c#6.0 起可以自定义默认构造器。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/263678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX