C#入门系列 (十三) -- 初识结构体
概念
在 C# 中,结构体是值类型数据结构。它使得一个单一变量可以存储各种数据类型的相关数据。struct 关键字用于创建结构体。
对于这些比较复杂的数据的表示,C#提供了结构体类型来保证数据的描述尽量与实际应用相一致。
C#的结构体类型(或称为结构)是用户自定义类型的一种,它为用户将实际应用中数据类型不同,但互相联系的数据看作一个整体提供了类型支持。
C#的结构体允许将不同类型但又互相联系的数据组合在一起形成一种新的数据类型。
定义
定义形式为:
成员声明描述了该类型的数据成员(或称为数据元素)以及其他类型成员的集合。
成员的数目可以任意多个,由具体需求确定。
大括号是成员列表的边界符。
结构体类型定义时,必须给出各个数据成员的类型声明。
如下所示:
public 是一个访问权限修饰符,表示该数据成员允许在结构体类型定义之外的地方访问。
如果在定义结构体时,某个数据成员之前没有 public 访问修饰符,则结构体类型变量不能访问这个数据成员。
如果声明的多个成员是同一类型,则形成成员列表,各成员名称之间用逗号隔开。
例如,对于坐标点信息的表示可以建立下面的结构体类型。
结构体属于值类型的数据类型,可以根据其使用范围选择定义在某个类的内部或者定义在所有类的外部。
一般来说,放在类内部定义的结构体类型只在该类中使用,放在类外部定义的结构体可以在当前命名空间范围内使用。
C#中,结构体定义不能放在方法或函数内部。
补充说明
下面是对结构体类型定义的补充说明。
struct 是定义结构体类型的一个关键字,不代表一种数据类型。
只有使用 struct 关键字定义了具体的结构体类型之后才能定义相应的变量,因此不能使用 struct 关键字来作为变量的数据类型。
结构体类型的成员既可以是简单数据类型的,也可以是结构体类型的,即结构体的定义可以嵌套。比如:
C#不允许结构体内部的成员类型是本结构体。如:
C#中的结构体除了数据成员之外,它也可以有函数成员。
结构体与类最大的区别就是类是引用类型,而结构是值类型。结构是密封的、不能继承的。
版权声明: 本文为 InfoQ 作者【陈言必行】的原创文章。
原文链接:【http://xie.infoq.cn/article/bf94cf6075e3df6ad41e99846】。未经作者许可,禁止转载。
评论