企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# 结构(C# 编程指南) 结构是使用 [struct](https://msdn.microsoft.com/zh-cn/library/ah19swz4.aspx) 关键字定义的,例如: ``` public struct PostalAddress { // Fields, properties, methods and events go here... } ``` 结构与类共享大多数相同的语法,但结构比类受到的限制更多: * 在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。 * 结构不能声明默认构造函数(没有参数的构造函数)或析构函数。 * 结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。在使用值类型的集合(如 Dictionary<string, myStruct>)时,请务必记住这一点。 * 结构是值类型,而类是引用类型。 * 与类不同,结构的实例化可以不使用 **new** 运算符。 * 结构可以声明带参数的构造函数。 * 一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自 **System.ValueType**,后者继承自 **System.Object**。 * 结构可以实现接口。 * 结构可用作可以为 null 的类型,因而可向其赋 null 值。 ## 相关章节 有关更多信息: * [使用结构(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/0taef578.aspx) * [构造函数(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/ace5hbzh.aspx) * [可以为 null 的类型(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/1t3y8s4s.aspx) * [如何:了解向方法传递结构和向方法传递类引用之间的区别(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/8b0bdca4.aspx) * [如何:在结构间实现用户定义的转换(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/zk2z37d3.aspx) * [More About Variables](http://go.microsoft.com/fwlink/?LinkId=221230) 在 [Beginning Visual C# 2010](http://go.microsoft.com/fwlink/?LinkId=221214) ## 请参阅 [C# 编程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [类和结构(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/ms173109.aspx) [类(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/x9afc042.aspx)