目录

 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# 中类型定义的标准语法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92371.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92371.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/92371.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Python中操作Word

生成请假条1.准备一个文件“template.docx”,内容如下。2.安装docxtpl库。pip install docxtpl3.执行代码,替换字典内容。from docxtpl import DocxTemplate# 读取定义模板文件 tpl DocxTemplate(template.docx) # 创建子文档 sd tpl.new_subdoc() # 添…

网络协议(四)网络层 路由协议

在网络层及网络层之上使用IP地址,IP地址放在IP数据报的首部,而MAC地址放在MAC帧的首部。通过数据封装,把IP数据报分组封装为MAC帧。 由于路由器的隔离,IP网络中无法通过广播MAC地址来完成跨网络的寻址,因此在网络层中只…

(后者可以节约内存/GPU显存)Pytorch中求逆torch.inverse和解线性方程组torch.linalg.solve有什么关系

假设我们要求A的逆矩阵,正常情况下我们使用如下命令: torch.inverse(A)但是本人发现,这个函数还挺消耗显存的。想到求逆矩阵和求线性方程组有很大关系。从而可以使用torch.linalg.solve来求解逆矩阵,关键是其显存消耗小。 求解逆矩…

esp32 idf 使用http访问json直接拼接content_length = -1

CMakeLists.txt添加网络请求库 REQUIRES esp_http_client效果图D (14235) HTTP_CLIENT: content_length -1 需要直接拼接content_length才能打印#include <stdio.h> #include <string.h> #include "esp_log.h" #include "esp_system.h" #inc…

[Github】下载使用github上的源代码

一、安装Anoconda 二、安装 Git &#xff08;1&#xff09;安装 方法 1&#xff1a;通过 Git 官网安装​ 下载 Git for Windows&#xff1a;https://git-scm.com/download/win运行安装程序&#xff0c;​​确保勾选 "Add Git to PATH"​​&#xff08;重要&#…

Java 邂逅 WebSocket:解锁实时通信的无限可能​

在当今的互联网时代&#xff0c;实时通信已经成为许多应用不可或缺的功能。从在线聊天工具到实时游戏互动&#xff0c;从股票行情推送再到物联网数据传输&#xff0c;都对实时性有着极高的要求。而在 Java 技术栈中&#xff0c;WebSocket 技术的出现&#xff0c;为开发者打开了…

MySQL 核心知识点梳理(5)

目录 事务 MySQL事务的四大特性 ACID 原子性 持久性 隔离性 事务的隔离级别 读未提交 读已提交 可重复读 串行化 事务的隔离级别如何实现 MVCC 版本链 READVIEW 高可用 MySQL数据库的读写分离 主从复制 主从同步延迟怎么处理 分库策略 水平分库分表的策略…

借助AI学习开源代码git0.7之六write-tree

借助AI学习开源代码git0.7之六write-tree write-tree.c 的作用是根据当前的索引&#xff08;cache&#xff09;内容创建一个树&#xff08;tree&#xff09;对象&#xff0c;并将其写入Git的对象数据库。 树对象代表了项目在某个时间点的目录结构。 代码的主要逻辑&#xff1a;…

开源 python 应用 开发(八)图片比对

最近有个项目需要做视觉自动化处理的工具&#xff0c;最后选用的软件为python&#xff0c;刚好这个机会进行系统学习。短时间学习&#xff0c;需要快速开发&#xff0c;所以记录要点步骤&#xff0c;防止忘记。 链接&#xff1a; 开源 python 应用 开发&#xff08;一&#xf…

SeaTunnel 云仓连接器使用指南 | AI 助手解读系列

最近体验了一下 Deepwiki 的 AI 文档生成功能&#xff0c;本文展示其自动生成的《SeaTunnel 云端数据仓库连接器》文档内容&#xff0c;欢迎大家一起“挑刺捉虫”&#xff0c;看看 AI 写技术文档到底靠不靠谱&#xff1f; 本文档介绍了 Apache SeaTunnel 的云数据仓库连接器&a…

每日算法刷题Day51:7.21:leetcode 栈6道题,用时1h40min

二.进阶 1.套路 2.题目描述 1.给你一个字符串 s 。它可能包含任意数量的 * 字符。你的任务是删除所有的 * 字符。 当字符串还存在至少一个 * 字符时&#xff0c;你可以执行以下操作&#xff1a; 删除最左边的 * 字符&#xff0c;同时删除该星号字符左边一个字典序 最小的字…

网络基础DAY16-MSTP-VRRP

STP/RSTP的局限性1.所有VLAN共享一棵生成树 2.无法实现不同VLAN在多条Trunk链路上的负载分担 3.次优化二层路径。MSTP的基本概念及优势MSTP的定义MST域拥有相同MST配置标识的网桥构成的集合。 具体如何分辨是否是同一个域&#xff0c;就看域名&#xff0c;配置修订号&#xff0…

freertos关键函数理解 uxListRemove

//删除pxItemToRemove节点 UBaseType_t uxListRemove(ListItem_t *pxItemToRemove) { //The list item knows which list it is in. Obtain the list from the list item.//找到节点所在的链表//my_printf( "uxListRemove pxItemToRemove %#p\n", pxI…

C语言---番外篇(柔性数组)

前言&#xff1a; 由于这块内容所谓综合性比较高&#xff0c;有数组的知识&#xff0c;有结构体的知识&#xff0c;还有动态内存管理的知识&#xff0c;所以我就单独写一篇博客&#xff0c;此谓番外篇。 柔性数组的概念 定义在结构体的最后一个元素的位置且大小未知的数组就叫…

单片机的几种GPIO输入输出模型详解

模式选择汇总参考表&#xff1a;模式输出驱动输入阻抗默认状态典型应用场景推挽输出强驱动禁用可配置LED, SPI, 高速信号开漏输出弱驱动禁用低/悬空IC, 电平转换, 线与浮空输入禁用极高不确定外部强驱动信号上拉输入禁用中高高电平按键(接地型), 数字输入下拉输入禁用中高低电平…

深度解析ECharts.js:构建现代化数据可视化的利器

引言&#xff1a;数据可视化的新时代挑战 在数字化转型浪潮中&#xff0c;数据可视化已成为企业决策和用户体验的关键环节。面对海量数据的呈现需求&#xff0c;传统表格已无法满足用户对直观洞察的渴求。作为百度开源的JavaScript可视化库&#xff0c;ECharts.js凭借其强大的功…

从零构建实时通信引擎:Freeswitch源码编译与深度优化指南

一、构建工具&#xff1a;编译FreeSWITCH及其依赖库的基础 1. CMake2. Autoconf 二、汇编器&#xff1a;提升音视频处理性能 3. YASM / NASM 三、音视频编解码器&#xff1a;支撑实时媒体传输 4. Opus5. x264 (可选)6. libvpx / libvpx2 (可选) 四、多媒体框架与工具库&#xf…

网络原理 HTTP 和 HTTPS

目录 一 . HTTP 协议 二 . 抓包 三 . HTTP 请求 / 响应的基本格式 &#xff08;1&#xff09;HTTP请求的基本格式 &#xff08;2&#xff09;HTTP响应的基本格式 四 . HTTP 方法 GET 和 POST 的区别&#xff1a; 五 . 请求报头和响应报头 &#xff08;1&#…

基于单片机的自动条幅悬挂机

摘 要 随着日新月异科技发展&#xff0c;在心率体温测量方面&#xff0c;我们取得了迅速的发展&#xff0c;就近日而言&#xff0c;脉搏测量仪已经在多个领域大展身手&#xff0c;除了在医学领域有所建树&#xff0c;在人们的日常生活方面的应用也不断拓展&#xff0c;如检疫…

《C++》面向对象编程--类(中)

文章目录一、构造函数1.1定义1.2语法1.3特性二、析构函数2.1定义2.2语法2.3特性三、拷贝构造函数3.1定义3.2语法3.3特性3.4浅拷贝3.4.1定义3.4.2浅拷贝的风险3.5深拷贝一、构造函数 1.1定义 在C中&#xff0c;构造函数&#xff08;Constructor&#xff09; 是一种特殊的成员函…