当前位置: 首页 > news >正文

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){//this 指的是Position结构体this.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# 中类型定义的标准语法。

http://www.xdnf.cn/news/1163305.html

相关文章:

  • AI Agent与MCP协议构建标准技术报告(2025Q3)
  • 【科研绘图系列】R语言绘制棒棒图和哑铃图
  • PyQt5—QInputDialog 学习笔记
  • MySQL 8.0 OCP 1Z0-908 题目解析(31)
  • Python并发编程:突破GIL枷锁,高效利用多核CPU
  • Vue组件之间通信
  • ps aux 和 ps -ef
  • react class和function 如何模拟vue中的 双向绑定 监听 computed的方式
  • 区块链之以太坊合约开发工具——Metamask钱包和Remix IDE
  • 架构设计衡量标准
  • 系统分析师-计算机系统-操作系统-存储器管理设备管理
  • 【每日算法】专题四_前缀和
  • 【算法基础】二分查找
  • 选择排序 冒泡排序
  • TPS61194PWPRQ1适用于汽车照明低 EMI、高性能 4 通道 LED 驱动器TPS61194
  • Java 二叉树
  • 【Java学习|黑马笔记|Day19】方法引用、异常(try...catch、自定义异常)及其练习
  • 洛谷 P1480 A/B Problem
  • Apache Ignite Binary Object 调优
  • Js进阶案例合集
  • 《使用Qt Quick从零构建AI螺丝瑕疵检测系统》——1. 启航:你的第一个工业视觉应用
  • 原型设计模式
  • GaussDB alter table的用法
  • 有关Mysql数据库的总结
  • 45.sentinel自定义异常
  • QGIS、ArcMap、ArcGIS Pro中的书签功能、场景裁剪
  • Vue过度与动画效果
  • 如何用 Z.ai 生成PPT,一句话生成整套演示文档
  • 用 STM32 的 SYSTICK 定时器与端口复用重映射玩转嵌入式开发
  • 用Java 代码实现一个简单的负载均衡逻辑