C# 结构体
目录
1.如何定义一个结构体(struct 关键字)
2.如何使用一个结构体
3.如何修改一个数据
4.如何让去访问一个学生的信息
5、结构体数组
练习
1.如何定义一个结构体(struct 关键字)
C#中public 、private、protect的区别
结构体 : 作用就是把某一类的变量进行整合 组成一个新的数据类型,相当于一个全新的信息 比如学生信息(包含年龄,姓名,身高,学号等信息);
//struct 声明结构的关键字private struct Studen //Studen 结构体的名字(类型){//结构体内部 定义数据 定义学生相关的信息// 想要收集的数据 都可以在此处定义// 字段public string name;public int age;public double heigth;public int id;//结构体中的函数//方法public void Show(){Console.WriteLine($"{name} {age} {heigth} {id}");}}
2.如何使用一个结构体
//第一个学生
Studen stu = new Studen(); //使用结构体声明一个变量 这个变量就代表结构体
//通过变量去操作结构体 进行数据储存
stu.name = "张三";
stu.age = 18;
stu.heigth = 1.75;
stu.id = 123456;// 第二个学生
Studen stu1 = new Studen();
stu1.name = "李四";
stu1.age = 20;
stu1.heigth = 1.80;
stu1.id = 000000;
3.如何修改一个数据
stu.id = 888888;
4.如何让去访问一个学生的信息
// 结构体 数据与数据之间是相互隔离的 不会相互影响
Console.WriteLine(stu.id);
Console.WriteLine(stu1.id);
5、结构体数组
//如果有一组数据 使用数组 结构体数据Studen[] stus = new Studen[2];stus[0].name = "王五";stus[0].age = 21;stus[0].heigth = 1.78;stus[0].id = 111111;stus[1].name = "赵六";stus[1].age = 19;stus[1].heigth = 1.65;stus[1].id = 123111;stus[0].Show();stus[1].Show();
练习:
有一个三维坐标系,给出x,y,z,计算正方体体积
static void Main(string[] args)
{//使用结构体内的方法赋值Position ps = new Position(3.15,2.6,2);//直接赋值//ps.x = 3.15;//ps.y = 2.6;//ps.z = 2;ps.Point();
}// 定义一个表示三维坐标的结构体
// x y z
struct Position
{//结构体中的字段public double x;public double y;public double z;//结构体中的构造函数//实例化调用//初始化赋值 数据public Position(double x,double y,double z) //和类的名字Position必须相同{//this 指的是Position类结构体,等号前面指的是方法外层的x,y,z,等号后面是方法里的参数x,y,zthis.x = x;this.y = y;this.z = z;}public void Point(){Console.WriteLine(x*y*z);}
}
注:在C# 结构体代码中,`Position` 有两种含义,需要结合上下文来理解:
1. **结构体名称**:`struct Position` 中的 `Position` 是这个结构体的名称,它定义了一个新的自定义类型,用于表示三维坐标(包含 x、y、z 三个属性)。
2. **构造函数**:`public Position(double x, double y, double z)` 中的 `Position` 是这个结构体的构造函数。构造函数是一种特殊的方法,它的名称必须与结构体(或类)的名称完全一致,用于在创建结构体实例时初始化其成员变量。
当你使用 `new Position(1, 2, 3)` 创建结构体实例时,就是在调用这个与结构体同名的构造函数,它会接收三个参数并为 x、y、z 赋值。 简单来说,在这个结构体中,`Position` 既是类型本身的名称,也是用于初始化该类型实例的构造函数的名称,这是 C# 中类型定义的标准语法。