C# --- 结构体

news2024/9/20 6:05:36

 

 

1.结构体与类的第一个区别是创建的时候使用的关键字不同 --- 结构体 struct ; 类是 class

2.结构体中不能够自定义无参构造函数,因为结构体中已经隐式包含了一个无参构造函数,这个不像类中自带无参构造函数可以被我们替代,它是无法替代的

3.除了上面这两个区别外,结构体中可以有成员字段,方法,属性和自动属性(包括静态的),同时我们还可以自己添加有参构造函数

4.在结构体中调用一个自动属性前需要先将其对应的隐式字段初始化(在类中不需要),而负责初始化功能的则是构造函数,如果说我们创建结构体对象的时候使用的是其自带的无参构造函数的话,这个无参构造函数会帮我们将所有字段以及自动属性对应的隐式字段都给初始化好。

但是当我们使用的是自己写的有参构造函数的话,由于我们目前掌握的知识还不足以实现隐式字段的初始化,所以我们需要通过曲线救国的方式来完成隐式字段的初始化。

补充一个构造函数独有的特性 --- 如果想在调用一个有参构造函数时先调用一个无参构造函数的话,我们可以通过在这个构造函数的括号后面加上 :this()来实现

通过上面这个特性我们就可以通过在有参构造函数的括号后面 + this() 的方式,实现在调用有参构造函数之前先调用结构体自带的无参构造函数帮我们把隐式字段初始化好。

结构体和类的最大一个区别就是 结构体是值类型 (特殊的引用类型), 而类是引用类型

首先无论是创建结构体对象还是类对象我们都需要在栈区 / 堆区(一般默认在栈区,会因实际情况发生改动,如数组)中进行声明(创建一个指针(引用)来指向为对象开辟的内存块),然后我们开始实例化对象 --- 结构体对象的实例化(开辟内存空间)是在栈区中进行的,而类对象的实例化则是在堆区中进行的

结构体对象相对于类对象的优点是:1.占据的内存空间小 2.访问速度快

但是缺点也很明显,就是它占据的是栈区中的内存空间,而栈区中的内存空间都是非常“珍贵”的

1.在结构体中字段只能够通过构造函数来实现初始化(除非字段被const 或者是 static 修饰),不像在类中我们可以在创建字段的时候直接对齐初始化。

(被static修饰的字段会在结构体 / 类 名出现的时候一起被加载好,而被const 修饰的字段则会变为常量)

在普通类前面加上static关键字修饰就能够将普通类修饰为静态类了,静态类中只能够有静态成员 

类是一个数据类型,而类中的数据成员则是由多个数据类型组成,也就是说一个数据类型中包含多个基本数据类型,这个数据类型被我们称为复合数据类型(自定义数据类型)

我们如何调整随机的概率呢? ---  通过转换的方式来实现

假如我们想让一个数a出现的概率是10%,另一个数出现的概率是90%,我们可以转换为取随机数的方式来解决这个问题 

上面这行代码的意思是在0,9之间随机生成一个数,如果这个数等于5的话就输出4,否则输出2

而需要注意的是随机出5的概率是10%,2的概率是90%

通过这种转换的方式我们就完美的解决了规定一个数出现的概率是多少的要求(这个方法还可以进行拓展,比如出现的概率为33%,42%...等等,都可以对上面这段代码进行变形来实现 --- 生成的数是否小于等于 33,如果是的话输出4,否则输出2,此时我们就将4出现的概率控制为33%,2为67%) 

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

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

相关文章

OSWE 考试总结

背景 今天,2022年12月6日,我收到了 OSWE 考试通过的邮件。至此,Offsensive Security 之旅告一段落。我拿到了 KLCP, OSCP, OSEP, OSED, OSWE, OSCE3。圆满完成三月份立下的 FLAG,没有打脸。 这里,小小总结一下 OSWE …

Apache服务深入学习篇(详细介绍)

什么是Apache? Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速…

汽车电子之功能安全介绍

功能安全介绍 1.什么是功能安全FS? 2.为什么需要功能安全? 3.认识标准《ISO26262》。 4.怎么评估ASIL 等级? 5.功能安全怎么做(措施)? 6.参考资料 1.什么是功能安全FS? (1)功能安全的发展过…

VM系列振弦采集模块频率计算与质量评定

VM系列振弦采集模块频率计算与质量评定 运用采集到的若干信号样本数据, 首先估算得到一个频率值,称为“ 伪频率值” ;然后在模块异常数据剔除算法模型中, 以寄存器 CAL_PAR1 的值作为主要判定参数, 每个采样值与伪频…

微服务框架 SpringCloud微服务架构 22 DSL 查询语法 22.3 精确查询

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 SpringCloud微服务架构 文章目录微服务框架SpringCloud微服务架构22 DSL 查询语法22.3 精确查询22.3.1 精确查询22.3.2 精确查询 - 语法22.3…

基于接口策略路由

1:ospf 配置略 设置策略路由PC1为工程部走R1-R2-PC4;PC2为财务部走R1-R3-PC4 一分类: [R1]acl 2006 [R1]rule permit source 1.1.1.2 0 [R1]acl 2007 [R1]rul permit source 1.1.1.3 0 [R1]traffic classifier caiwubu (定义组名为财务部) [R1] if-match acl…

华丰科技递交上会稿:应收账款超6亿 长虹集团与华为是股东

雷递网 雷建平 12月6日四川华丰科技股份有限公司(简称:“华丰科技”)日前递交上会稿,准备在科创板上市。华丰科技计划募资4.76亿元。其中,2.79亿元用于绵阳产业化基地扩建项目,9636.77万元用于研发创新中心…

GeoGebra 與數學探索 1 GeoGebra 入門到進階之整體介紹

Goal: GeoGebra 除了可以輕鬆的讓我們以即時動態反饋圖形的方式模擬探索幾何的問題, 或是幫我們驗證答案, 也可以進行數論、微積分、矩陣等等各方面的探索, 在問題尺度不大又需要即時以圖像視覺呈現探索過程的情況下, GeoGebra 其實優於以寫程式的方式進行探索. “Talk is che…

【Windows篇】Telnet指令介绍以及telnet测试端口连接示例

演示环境 1.VMware Workstation16虚拟机 2.windows10企业版镜像 前言 Telnet是Internet远程登录服务的标准协议和主要方式,最初由ARPANET开发,现在主要用于Internet会话,它的基本功能是允许用户登录进入远程主机系统。telnet程序是基于TELN…

CleanMyMac2023一键清除垃圾缓存和恶意广告插件 时刻保持Mac畅快运行

CleanMyMac 是一款功能强大的 Mac 清理程序、加速工具和健康护卫,旨在让您的 Mac 重新展现强劲性能。点按一下,即可优化调整整个 Mac畅享智能扫描 — 这款超级简单的工具用于优化您的 Mac。只需点按一下,即可运行所有任务,让您的 …

电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 ​ 📋📋📋本文目录如下:⛳️⛳️⛳️ ​ 目录 ​ 1 概述 2 电力系统潮流计…

HTML期末作业——基于html实现娱乐音乐资讯发布平台HTML模板(22页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

蜣螂优化算法Dung beetle optimizer附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

美食杰项目(六)发布菜谱

目录前言具体效果实现的具体功能代码思路主要引入的element ui的具体样式相关代码总结:前言 本节给大家讲的是美食杰项目的发布菜谱的主要功能和具体样式,希望我的代码能够帮助到你,也希望你能够看懂 具体效果 实现的具体功能 按照效果图实…

ASO优化在App Store和Google Play之间的区别

App Store和Google Play这两家应用商店的目的都是,给用户提供平台,让用户们找到自己所需要的APP并下载。那它们具体有哪些区别呢? App Store的关键词更新的前提,必须是提交一个新的应用更新。 1.标题:App Store标题要…

开源的笔记和书签应用Benotes

什么是 Benotes ? Benotes 一个开源的自托管笔记和书签网络应用程序。使用 Laravel 和轻量级 Lumen 框架构建,可以作为 PWA 安装并托管在几乎任何地方。同时支持 Markdown 和富文本编辑器。 软件特点: URL 会自动保存图片、标题和描述同时支…

电力系统潮流计算与PowerWorld仿真(牛顿拉夫逊法和高斯赛德尔法)(Matlab实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 ​ 📋📋📋本文目录如下:⛳️⛳️⛳️ ​ 目录 1 概述 2 主要任务 3 主要内…

【雷达】基于Matlab模拟海洋监视雷达检测仿真

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。 🍎个人主页:Matlab科研工作室 🍊个人信条:格物致知。 更多Matlab仿真内容点击👇 智能优化算法 …

攻防世界 真是阳间题

作者本题所使用工具 打开附件 艾尔登法环正式发售在即,迫不及待的mjj身上好像有蚂蚁在爬,写下了一句谜语: 32073579756415871361224665144251529616546134107283371422717502731249951057470539916408170663523436573989472489382550863584…

Nginx的安装与负载均衡、动静分离的初步使用(Windows)

了解Nginx Nginx的作用: 反向代理 正反向代理是什么? 正向代理:代客户端访问服务端 反向代理:代服务端接收客户端的访问 正反向代理示例: 正向代理:客户端A1、客户端A2...----->正向代理服务器------&…