1.基本概念
结构体是一种自定义变量类型,类似枚举需要自己定义
它是数据和函数的集合
在结构体中可以申明各种变量和方法
作用:用来表现存在关系的数据集合。比如用结构体表现学生动物人类等等
2.基本语法
结构体一般写在namespace语句块中
结构体关键字struct
struct 自定义结构体名
{
//第一部分
//变量
//第二部分
//构造函数(可选)
//第三部分
//函数
}
注意:结构体名字我们的规范是帕斯卡命名法
3.实例
表现 学生数据 的 结构体
struct Student
{
//1.变量
//结构体申明的变量不能直接初始化
//int age = 10;//报错
//变量类型可以写任意类型,包括结构体,但是不能是自己的结构体,可以是其他的
int age;
bool sex;
int stuId;
string name;
//2.构造函数
//3.函数方法
//作用:表现这个数据结构的行为的
//注意:在结构体中的方法,目前不需要加static
void Speak()
{
//函数中可以直接使用结构体内部申明的变量
Console.WriteLine("我的名字是{0},我今年{1}岁", name, age);
}
//可以根据需求 写无数个函数
}
4.结构体的使用
class Program
{
static void Main(string[] args)
{
//变量类型 变量名
Student st1;
st1.age = 18;
st1.name = "张三";
st1.sex = false;
st1.stuId = 123456;
st1.Speak();
//打印结果:我的名字是张三,我今年18岁
}
}
5.访问修饰符
修饰结构体中变量和方法是否能被外部使用
public公共的,可以被外部访问
private私有的,只能在内容使用
默认不写为private
6.结构体的构造函数
基本概念
1.没有返回值
2.函数名必须和结构体名相同
3.必须有参数
4.如果申明了构造函数,那么必须在其中对所有变量数据初始化构造函数—般是用于在外部方便初始化的
struct Student
{
public int age;
public bool sex;
public int stuId;
public string name;
//构造函数
public Student (int age,bool sex,int stuId,string name)
{
//新的关键字this
//代表自己
this.age = age;
this.sex = sex;
this.stuId = stuId;
this.name = name;
}
public void Speak()
{
Console.WriteLine("我的名字是{0},我今年{1}岁", name, age);
}
}
class Program
{
static void Main(string[] args)
{
Student s2 = new Student(18, true, 2, "小红");
s2.Speak();
//打印结果:我的名字是小红,我今年18岁
}
}
7.总结
概念:结构体 struct 是变量和函数的集合 用来表示特定的数据集合
访问修饰符:
public 和 private 用来修饰变量和方法的
public 公共的 可以被外部访问
private 私有的 只能在内部使用
构造函数:没有返回值 函数名必须和结构体名相同 可以重载 主要帮助我们快速初始化结构体对象的
注意:
1.在结构体中申明的变量 不能初始化 只能在外部或者在函数中赋值(初始化)
2.在结构体中申明的函数 不用加static