MINI类-结构体

文章目录

  • 结构体的定义和使用
    • 实例
  • 类和结构体的关系

  • 博主写作不容易,孩子需要您鼓励
  • 万水千山总是情 , 先点个赞行不行

结构体与类相似,通常用来封装小型的相关变量组,例如,学生的学号、姓名、性别、年龄等。结构是一种值类型,通常创建结构要比创建类的速度快。如果需要一些紧凑循环,需要在其中创建大量的新数据结构,则应考虑结构体而不是类。

结构体的定义和使用

在C#中,可以将结构看成轻量级的类。定义结构的定义类相似,采用struct进行定义,每个struct类型数据可以是常量、变量、构造函数、方法和属性等成员。

  • 语法格式如下:
  • <访问修饰符> struct 结构名{//结构体定义}
    

    使用结构通过声明结构体变量或使用new来实例化结构体对象,然后通过“结构体变量.结构成员名”“结构对象.结构成员”的方式来使用结构。

    实例

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;namespace test
    {class Program{static void Main(string[] args){Student Stu1;Stu1.stuNum = "14031403";Stu1.stuName = "小明";Stu1.stuAge = 19;Stu1.stuClass = 1;Stu1.stuGrade = 12;Console.WriteLine("结构体演示");Console.WriteLine("学生 " + Stu1.stuName .ToString()+":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}",Stu1.stuNum,Stu1.stuAge,Stu1.stuGrade,Stu1.stuClass);Stu1.ChengeStudentInf("14031403", "小明", 19, 1, 13);Console.WriteLine("调用结构体方法演示");Console.WriteLine("学生 " + Stu1.stuName .ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", Stu1.stuNum, Stu1.stuAge, Stu1.stuGrade, Stu1.stuClass);Student stu2 = new Student("14081408", "小王", 18, 3, 12);Console.WriteLine("调用结构体构造函数演示");Console.WriteLine("学生 " + stu2.stuName .ToString() + ":");Console.WriteLine("学号:{0},年龄:{1},年级:{2},班级:{3}", stu2.stuNum, stu2.stuAge, stu2.stuGrade, stu2.stuClass);Console.ReadKey();}}public struct Student                   //定义结构体Student{public String stuNum;               //定义结构成员表示学生学号public String stuName;              //定义结构成员表示学生名字public int stuAge;                  //定义结构成员表示学生年龄public int stuClass;                //定义结构成员表示学生班级public int stuGrade;                //定义结构成员表示学生年级public Student(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){                                   //结构体的构造函数,用参数给成员赋值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}public void ChengeStudentInf(String stuNum, String stuName, int stuAge, int stuClass, int stuGrade){                                   //结构体的方法函数,用参数改变成员的值this.stuNum = stuNum;this.stuName = stuName;this.stuAge = stuAge;this.stuClass = stuClass;this.stuGrade = stuGrade;}}}
    

    运行结果:
    在这里插入图片描述

    类和结构体的关系

    类和结构体都是创建对象的模板,都可以包含构造函数、常数、字段、方法、属性、索引器和运算符等成员。二者区别如下:

    1. 结构体是值类型,类是引用类型,在内存中结构体是储存在堆栈上的值类型,类是储存在堆上的引用类型。
    2. 结构的构造函数和类的构造函数不同,结构不能包含显式的无参构造函数,结构成员会自动初始化为他的默认值。结构不能包含以下形式的初始值设定类:base(参数列表)
    3. 对于结构体中的实例字段成员,不能在声明时初始化。
    4. 声明了结构体类型后,可以使用new运算符创建构造对象,也可以不使用new关键字。如果不使用new,那么在初始化所有字段前,字段将保持未赋值状态且对象不可用。
    5. 结构体不支持继承,即一个结构体不能从另一个结构或类继承,而且不能作为一个类的基类。
    • 博主简介:
    • 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
    • 帮忙点个赞吧。哈哈。

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

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

相关文章

由.def文件生成lib文件[转]

最近在学习curl库时&#xff0c;碰到一个问题&#xff0c;从官网上下载了一个lib版的&#xff0c;却发现只有.dll&#xff0c;没有lib文件&#xff0c;感觉很奇怪&#xff0c;google了之后才知道&#xff0c;原来库作者的用意是让用户自己生成lib文件&#xff0c;下载到的lib文…

union 和 union all 有什么不同?

假设我们有一个表 Student&#xff0c; 包括以下字段与数据&#xff1a;drop table student;create table student( idint primary key,name nvarchar2(50) not null,score number not null);insert into student values(1,Aaron,78);insert into student values(2,Bill,76);in…

暴风影音硬件加速播放高清影片

近年来&#xff0c;高清视频因为画面清晰、视觉效果好&#xff0c;越来越受到众多电脑用户的厚爱。暴风影音3.6版本在高清的支持上&#xff0c;笔者必须得说&#xff0c;是暴风影音在高清方面的一个大跨越&#xff0c;在这个技术上&#xff0c;暴风把KMP等播放器都远远的抛在后…

SSL双向认证的实现

2019独角兽企业重金招聘Python工程师标准>>> 环境 系统&#xff1a;archlinux/centOS nginx&#xff1a;nginx/1.12.2 浏览器&#xff1a;火狐firefox 前提&#xff1a;1.安装nginx。    2.安装openssl。 生成证书 新建工作目录 首先建立一个工作目录&#x…

partial 分部类-庞大类的瘦身计划

文章目录使用情况语法博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 一般来说&#xff0c;一个类、结构或者接口位于一个源文件中&#xff0c;但是某些情况&#xff0c;比如大型项目、特殊部署时&#xff0c;可能需要把一个类、结构或者接口放…

scroll-view——小程序横向滚动

这是官方给的布局代码 <view class"section"><view class"section__title">vertical scroll</view><scroll-view scroll-y style"height: 200px;" bindscrolltoupper"upper" bindscrolltolower"lower"…

二期设计

电子锁管理 设备管理 设备管理 1 信息编辑;回收电子锁发放 电子锁初始化&#xff0c;发放 4 记录车辆在发车时使用的电子锁电子锁开锁联系人管理 电子锁开锁联系人管理 1 根据订单路线中的投点&#xff0c;设置每个投递点的开锁联系人&#xff0c;通过短信的方式下发给你开…

音视频同步系列文章之------时间戳与时间尺度(time scale)

根据一些文章我自己推敲了一下几个概念如下&#xff1a; 采样频率是每秒钟抽取声波幅度样本的次数。8000 帧率是每秒显示帧数。 20 时间戳单位&#xff1a;时间戳计算的单位不为秒之类的单位&#xff0c;而是由采样频率所代替的单位&#xff0c;这…

30秒无需编码完成一个REST API服务

JSON Server 30秒内无需编码快速完成一个模拟的REST API服务。 这个服务主要是给那些需要快速的模拟原型后端接口的前端人员使用的 GitHub&#xff1a;github.com/typicode/js… 安装 $ npm install -g json-server 复制代码Example 新建一个 db.json 文件 {"posts":…

namespace-C#命名空间

博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 C#程序是利用命名空间组织起来的。命名空间既做程序的内部组织系统&#xff0c;又用做外部组织系统。就像一个国家为了便于管理&#xff0c;分成多个省份一样。 声明命名空间 命名空间是.NET …

NKU 专题一 题解

A - Flip Game 总的情况数只有2^16次方种&#xff0c;显然直接bfs就可以了 1 #include<iostream>2 #include<queue>3 #include<cstring>4 using namespace std;5 int W,B,start;6 bool have[1000000];7 struct plot{8 int n,step;9 }; 10 void input(int…

僵尸进程(转)

前面的文章中&#xff0c;我们已经了解了父进程和子进 程的概念&#xff0c;并已经掌握了系统调用exit的用法&#xff0c;但可能很少有人意识到&#xff0c;在一个进程调用了exit之后&#xff0c;该进程并非马上就消失掉&#xff0c;而是留下一个称为僵尸进 程&#xff08;zomb…

ComblockEngine 引擎实践

comblockEngine 参考资料 官方网址 学习备注 熟悉内容 1.python 的字符串操作 2.flags 属性的作用域 flags等 问题每天 1 1.基本数据类型 基本类型 2.数据库表的操作 操作1 3.属性的定义在.def中。self.出来之后&#xff0c;在继承多个类的时候会不会重复。应该是子类的属性覆盖…

王阳明诗歌集

此心光明&#xff0c;夫复何求。&#xff08;王阳明死前对弟子的遗言&#xff09; 0. 非常少年、非常父子 山近月远觉月小&#xff0c;便道此山大于月。若人有眼大如天&#xff0c;当见山高月更阔。—— 《蔽月山房》&#xff0c;作于12岁&#xff1b;1. 中秋 吾心自有光明月&a…

子承父业-C#继承

文章目录继承的定义和使用实例继承的特性继承的可传递性继承的单一性继承中的访问修饰符base和this关键字basethis实例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 继承是软件复用的一种形式。使用继承可以复用现在类的数据和行为&#xff…

MAVEN创建并打包web项目

maven项目是由一个maven project和多个maven module组成的&#xff0c;以下简介一下maven webapp的创建和打包&#xff0c;前提是你已经安装配置好maven了。打开eclipse。依照例如以下操作&#xff1a; 我们首先当然要先创建一个project。如上图选择。 如今maven project已经创…

GNU gcc的编译工具用法(转)

对大多数不从事Linux平台C语言开发的人来说&#xff0c;GNU gcc的一套工具和Linux平台的共享库的使用还是十分陌生的&#xff0c;其实我也不太熟悉&#xff0c;姑且写点基础知识&#xff0c;权当做备忘吧。 一、GNU gcc的编译工具用法 我们先来写一个简单的C程序&#xff1a;…

学界 | CVPR 2018颁布五大奖项,何恺明获年轻学者奖

年度计算机视觉和模式识别盛会CVPR&#xff08;Conference on Computer Vision and Pattern Recognition&#xff09;在美国盐湖城开幕啦&#xff01; 据统计&#xff0c;本届大会有超过3309篇大会论文投稿&#xff0c;接收979篇论文。 面对如此多的论文评审任务&#xff0c;CV…

virtual、override-蝌蚪和青蛙-C#多态

文章目录多态的概念多态的实现方法重载、重写、隐藏重载重写隐藏博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 多态的概念 什么是多态&#xff1f; 多态一次最早用于生物学&#xff0c;指同一种族的生物具有不同的特性。比如青蛙小时候是蝌…

jvm--3.内存管理

5.JVM内存管理 JAVA虚拟机在执行java程序的过程中&#xff0c;会把它管理的内存分成若干个不同的数据区域。 ------------------------------------------------------------------------------------— | 运行时数据区 | | ----------- -------- ----------------- | | | 方法…