结构体是一种自定义变量类型,类似枚举需要自己定义,它是数据和函数的集合,在结构体中可以声明各种变量和方法。
作用:用来表现存在关系的数据集合,比如用结构体表现学生,动物,人类等。
1.基本语法
结构体一般写在namespace语句块中,结构体关键字:struct
struct 自定义结构体名
{
第一部分 变量
第二部分 构造函数(可选)
第三部分 函数
}
注意:结构体的名字,我们使用的是帕斯卡命名法!
2.实例
struct Student
{
//变量
//结构体声明的变量,不能直接初始化
//变量类型,可以写任意类型,包括结构体,但是不能是自己的结构体,可以是其它的。
//Student s;不能是自己的结构体
//年龄
int age;
//性别
bool sex;
//学号
int number;
//姓名
string name;
//构造函数
//函数方法
//表现这个数据结构的行为
//注意:在结构体中的方法,目前不需要添加static关键字
void Speak()
{
//函数中可以直接使用结构体内部声明的变量
Console.WriteLine("我的名字是{0},我今年{1}岁",name,age);
}
//可以根据自己的需求写无数个函数
}
⚡如果是自己的结构体,就会造成循环,导致报错,诸君可以自行尝试。
3.结构体的使用
//变量类型 变量名
Student s1;
s1.age=10;
s1.sex=false;
s1.number=1;
s1.name="Nicole Potter";
s1.Speak();
结构体直接点出来使用,需要注意的是,如果里面不是public类型,则在外部无法使用,好处是可以简化程序,具体看第四点。
4.访问修饰符
访问修饰符用于修饰结构体中的变量和方法,是否能被外部使用。
public 公共的,可以被外部访问
private 私有的,只能在内部使用
如果不写,则默认为private.
那么,我们应该如何使用修饰符呢?例如:
//年龄
public int age;
//性别
public bool sex;
//学号
public string number;
此时,也可以
public void Speak()
{
//......
}
这个时候,就可以通过外部点出来直接使用结构体里面的内容。
5.结构体的构造函数
结构体的构造函数是可以重载的。(可见C#系列之函数重载学习函数重载的相关内容)
//基本概念
//1.没有返回值
//2.函数名必须与结构名相同
//3.必须有参数
//4.如果声明了构造函数,必须在其中对所有变量数据初始化
public Student(int age,bool sex,int number,string name)
{
//新的关键字 this
//代表自己
this.age=age;
this.sex=sex;
this.number=number;
this.name=name;
}
Student s2=new Student(19,true,3344,"Nicole Potter");
s2.Speak();
6.总结
⚡结构体中的函数不用加static,但是其它函数要加static,在struct语句块中(其它篇目中有关于函数的描述,此处不再赘述)
//1.概念:结构体struct是变量和函数的集合,用来表示特定的数据集合
//访问修饰符:public和private用于修饰变量和方法,public外部调用,private内部调用,如果不写默认private
//构造函数:没有返回值,函数名和结构体名相同,可以重载,主要是帮助我们快速初始化结构体对象的。
//注意:
//1.在结构体中声明的变量不能初始化,只能在外部或者在函数中赋值(初始化)
//2.在结构体中声明的函数,不用加static.