结构类型
在实际问题中,一组数据中具有不同数据类型,在学生表,姓名应为字符型,学号为整型或字符型,年龄为整型,性别为字符型,成绩为整型或浮点型,为了处理这类数据,c#提供了结构类型,是一种自定义类型,可以存储多个不同类型的数据类型。且包含处理数据的方法。结构类型是一种值类型,对应变量的值保存在栈内存区域。
- 结构类型的声明:
结构类型由若干“成员”组成,称为“字段”,每个字段都有自己的数据类型。声明结构类型的一般格式如下:
struct 结构类型名称
{
[字段访问修饰符] 数据类型 字段1;
[字段访问修饰符] 数据类型 字段2;
.
.
.
[字段访问修饰符] 数据类型 字段n;
}[;]
其中
struct是数据类型的关键字 字段访问修饰符主要取值public和private(默认) public表示可以通过该类型的变量访问该字段
private表示不能不能通过该类型的变量访问该字段。例如以下声明一个具有姓名和年龄等字段的结构类型Student;
struct Student//声明结构类型Student
{
public int xh;//学号
public string xm ;//姓名
public string xb;//性别
public int n1;//年龄
public string bh;//班号
}
//其中:结构类型名称为Student 该结构类型由5个成员组成,分别为xh 整型变量。xm 字符串变量。xb 字符串变量。 nl 整型变量。bh 字符串变量。
- 结构类型变量的定义
一般格式为:结构类型 结构变量 例如Student s1,s2 ;
- 结构变量的使用
结构变量的使用主要包括字段访问和赋值等,
(1)访问结构变量字段
格式:结构变量名.字段名
例如:s1.xhbiao's表示结构变量s1的学号,s2.xm表示结构变量s2的姓名
结构变量的使用与普通变量完全相同。
(2)结构变量的赋值
2种方式:
结构变量的字段赋值:使用方法与普通变量
结构变量之间的赋值,要求赋值的两个结构变量必须类型相同,例如:s1 = s2;
例如:设计一个控制台程序说明结构类型的应用。
struct Student//结构类型的声明放在Main函数外面
{
public int xh;//学号
public string xm;//姓名
public string xb;//性别
public int n1;//年龄
public string bh;//班号
}
static void Main(string[] args)
{
Student s1;//定义两个结构类型变量
s1.xh = 101;
s1.xm = "李明";
s1.xb = "男";
s1.n1 = 20;
s1.bh = "07001";
Console.WriteLine("学号:{0},姓名:{1},性别:{2},年龄:{3},班号:{4}",s1.xh,s1.xm,s1.xb,s1.n1,s1.bh);
}
上述程序中:
声明了Student结构类型
在Main中定义她的两个变量s1和s2
给s1的各成员进行赋值并输入
将s1赋值给s2,改变s2的两个成员值并输出,结果是s1没有改变,说明s1,s2存储在不同的位置。
另外说明:既可以像“Student s1,s2”一样定义结构类型的变量,也可以采用引用类型进行定义
例如:Student s1 = new Student(); Student s2 = new Student();
不使用new运算符,将不会调运函数。
枚举型