C# 结构体(学习心得 16)

2023-11-02

结构体,是 值类型 数据结构。

使单一变量可以存储各种数据类型的相关数据。

struct 关键字用于创建结构体。

结构体用来代表一个记录。

超级小白友好,讲解C#基础,每集5分钟轻松学习,拒绝从入门到放弃!

一、定义结构体

声明方式:

struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

例:

using System;
using System.Text;
     
struct Books
{
   public string title;
   public string author;
   public string subject;
   public int book_id;
};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1;        // 声明 Book1,类型为 Books
      Books Book2;        // 声明 Book2,类型为 Books

      /* book 1 详述 */
      Book1.title = "C Programming";
      Book1.author = "Nuha Ali";
      Book1.subject = "C Programming Tutorial";
      Book1.book_id = 6495407;

      /* book 2 详述 */
      Book2.title = "Telecom Billing";
      Book2.author = "Zara Ali";
      Book2.subject =  "Telecom Billing Tutorial";
      Book2.book_id = 6495700;

      /* 打印 Book1 信息 */
      Console.WriteLine( "Book 1 title : {0}", Book1.title);
      Console.WriteLine("Book 1 author : {0}", Book1.author);
      Console.WriteLine("Book 1 subject : {0}", Book1.subject);
      Console.WriteLine("Book 1 book_id :{0}", Book1.book_id);

      /* 打印 Book2 信息 */
      Console.WriteLine("Book 2 title : {0}", Book2.title);
      Console.WriteLine("Book 2 author : {0}", Book2.author);
      Console.WriteLine("Book 2 subject : {0}", Book2.subject);
      Console.WriteLine("Book 2 book_id : {0}", Book2.book_id);      

      Console.ReadKey();

   }
}

运行结果:

Book 1 title : C Programming
Book 1 author : Nuha Ali
Book 1 subject : C Programming Tutorial
Book 1 book_id : 6495407
Book 2 title : Telecom Billing
Book 2 author : Zara Ali
Book 2 subject : Telecom Billing Tutorial
Book 2 book_id : 6495700

二、C# 结构的特点

C# 中的结构与传统的 C 或 C++ 中的结构不同。

特点:

  • 结构可带有方法、字段、索引、属性、运算符方法和事件。
  • 结构可定义构造函数,但不能定义析构函数。
  • 结构可实现一个或多个接口。
  • 结构成员不能指定为 abstract、virtual 或 protected。
  • 当使用 New 操作符创建一个结构对象时,会调用适当的构造函数来创建结构。
  • 结构可以不使用 New 操作符即可被实例化。
  • 如果不使用 New 操作符,只有在所有的字段都被初始化之后,字段才被赋值,对象才被使用。

三、类 VS 结构

区别:

  • 类是引用类型,结构是值类型。
  • 结构不支持继承。
  • 结构不能声明默认的构造函数。

例:

using System;
using System.Text;
     
struct Books
{
   private string title;
   private string author;
   private string subject;
   private int book_id;
   public void getValues(string t, string a, string s, int id)
   {
      title = t;
      author = a;
      subject = s;
      book_id =id;
   }
   public void display()
   {
      Console.WriteLine("Title : {0}", title);
      Console.WriteLine("Author : {0}", author);
      Console.WriteLine("Subject : {0}", subject);
      Console.WriteLine("Book_id :{0}", book_id);
   }

};  

public class testStructure
{
   public static void Main(string[] args)
   {

      Books Book1 = new Books(); /* 声明 Book1,类型为 Book */
      Books Book2 = new Books(); /* 声明 Book2,类型为 Book */

      /* book 1 详述 */
      Book1.getValues("C Programming",
      "Nuha Ali", "C Programming Tutorial",6495407);

      /* book 2 详述 */
      Book2.getValues("Telecom Billing",
      "Zara Ali", "Telecom Billing Tutorial", 6495700);

      /* 打印 Book1 信息 */
      Book1.display();

      /* 打印 Book2 信息 */
      Book2.display();

      Console.ReadKey();

   }
}

运行结果:

Title : C Programming
Author : Nuha Ali
Subject : C Programming Tutorial
Book_id : 6495407
Title : Telecom Billing
Author : Zara Ali
Subject : Telecom Billing Tutorial
Book_id : 6495700
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 结构体(学习心得 16) 的相关文章

随机推荐

  • 在服务器上安装vasp如何得到输出文件,科学网—VASP各输出文件解读-更新中 - 叶小球的博文...

    PROCAR file For static calculations the file PROCAR contains the spd and site projected wave function character of each
  • 单片机MPU9250/6050陀螺仪芯片驱动

    单片机MPU9250 6050陀螺仪芯片驱动 CubeMX配置 驱动代码 项目需要陀螺仪检测设备位置角度信息 所以就有了本文章 代码借鉴了github上大佬写的应用了卡尔曼滤波 关于寄存器的说明参考 当然驱动代码中也附带了说明 https
  • 用jquery实现仿淘宝焦点图的动画

  • 百万前端之js生成用户登录图形验证码

    用户登录的图形验证码 jquey生成引入图形验证码 和前端判断是否正确 参考代码如下 css login title width 20 height 3rem margin 0 auto margin top 2rem text align
  • 如何设计一个数据库

    前言 我们知道 软件工程是为了解决软件危机的 它是采用工程的概念 原理 技术和方法来开发与维护软件 把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来 在软件开发的过程中 数据库设计是非常重要的 它需要根据需求分析设抽
  • Android合并音频文件

    java view plain copy 需求 将两个amr格式音频文件合并为1个 注意 amr格式的头文件为6个字节的长度 param partsPaths 各部分路径 param unitedFilePath 合并后路径 public
  • cuda nms

    int YoloLayerPlugin nms fun int batch size void inputs void const outputs size t count int detections per im float nms t
  • word如何弄成两竖列_怎么在word中把字变成竖行

    1 如何将word文档中的字变成竖行 一 全部文字改成竖排显示的方法 1 启动Word 新建一篇文档 在文档中输入内容 2 单击 文件 选择 页面设置 3 打开 页面设置 对话框 点击 文档网格 在文字排列中选择 垂直 项 然后点击 确定
  • 关于uniapp的多列选择器

    uniapp的picker组件 它的值如果是个对象数组的话怎么办 三级联动为例
  • 根据字典绘图

    import matplotlib pyplot as plt dictionary 71 35 55 30 61 48 84 7 56 39 51 14 47 9 74 30 77 20 75 25 72 24 79 20 73 41 7
  • 前端兼容问题

    开发过程中遇到的兼容问题 1 ios浏览器new Date 报错 ios浏览器的new Date 方法无法识别 2021 04 26 或2021 04 26这种格式的日期 需转换为2021 04 26 本来以为到此就为止了 结果测试发现了一
  • Linux解决“No space left on device“问题

    维护一个后台运行的程序时 突然报了 No space left on device 的错 因为程序需要一直向磁盘写入图片文件 因此第一反应怀疑是不是图片太多导致磁盘空间不足 但事实并不是这样 通过命令df h查看磁盘占用率发现用量并没有满
  • Nginx access日志配置

    Nginx access日志配置 access log日志配置 access log用来定义日志级别 日志位置 语法如下 日志级别 debug gt info gt notice gt warn gt error gt crit gt al
  • vscode 中,vue导入组件路径提示

    VsCode中 Vue导入组件路径提示 当用Vue组件开发时 经常会引入文件 但又没提示该如何解决 注意 编写vue项目时需要从根目录打开 否则会导致很多插件不能用 注意 设置完成展示 打开VSCode 第一步 点击扩展 第二步 搜索框输入
  • 接口日志记录

    1 添加配置 保证日志记录信息类能执行
  • Bitcoin的Segwit地址

    Segwit地址又称隔离见证地址 在Bitcoin Blockchain上 经常可以看到类似bc1qmy63mjadtw8nhzl69ukdepwzsyvv4yex5qlmkd这样的以bc开头的地址 这种地址就是隔离见证地址 Segwit地
  • 汽车年检记录

    车子已经两年了 需要年检 早就听说年检挺麻烦的 要花不少时间 4S店也可以代为年检 不过第一次年检 我想自己体验一下 于是决定还是自己去年检 下面是年检的过程 备忘一下 另外我是去 浙江省杭州市市区浙江省杭州市西溪路529号 第一检测站进行
  • java并发编程(荣耀典藏版)

    大家好 我是月夜枫 聊一聊java中的并发编程 面试工作中也许都会用到 参考了很大博主的博客 整理了很久的文章 虽然还没有全部整理完 后续慢慢更新吧 并发编程 一 线程的基础概念 一 基础概念 1 1 进程与线程A 什么是进程 进程是指运行
  • 嵌入式LINUX环境搭建 - 写给刚入行的童学

    转自百问网论坛 www 100ask org 1 虚拟机里面的Linux无法上网 注意四个地方即可 第3点特别重要 很多同学的Linux不能上网就是因为这里 一定要选对网卡 千万别选自动 因为它还不够智能 如果你的物理机在用网线进行上网 那
  • C# 结构体(学习心得 16)

    结构体 是 值类型 数据结构 使单一变量可以存储各种数据类型的相关数据 struct 关键字用于创建结构体 结构体用来代表一个记录 超级小白友好 讲解C 基础 每集5分钟轻松学习 拒绝从入门到放弃 一 定义结构体 声明方式 struct B