html5风格网站特色瑞安门户网站建设

bicheng/2026/1/23 23:50:08/文章来源:
html5风格网站特色,瑞安门户网站建设,wordpress我爱水煮鱼,中国石油大学网站建设可能你对值类型和引用类型还不太了解。 值类型和引用类型#xff0c;是c#比较基础#xff0c;也必须掌握的知识点#xff0c;但是也不是那么轻易就能掌握#xff0c;今天跟着我一起来看看吧。 典型类型 首先我们看看这两种不同的类型有哪些比较典型的代表。 典型值类型…可能你对值类型和引用类型还不太了解。 值类型和引用类型是c#比较基础也必须掌握的知识点但是也不是那么轻易就能掌握今天跟着我一起来看看吧。 典型类型 首先我们看看这两种不同的类型有哪些比较典型的代表。 典型值类型 int, long, float, double等原始类型中表示数字的类型都是值类型表示时间的datetime也是值类型除此之外我们还可以通过关键字struct自定义值类型。 典型引用类型 原始类型中array, list, dictionary, queue, stack和string都是引用类型除此之外我们通过关键字class自定义引用类型。 基类 c#中所有的类型都最终继承自 Object 这是没有疑问的但是这其中还有些微区别。 值类型基类 对于值类型来说除了最终继承自Object还继承自ValueType继承链如下 添加图片注释不超过 140 字可选 但是请不要误解这里仅仅指的是值类型天然是ValueType但是不代表值类型能够这么声明 struct Struct1 : ValueType { } 这样是会引起编译错误的值类型不能继承任何其他类型值类型只能实现接口不能继承自其它类型。只有引用类型既可以实现接口也能继承自其它类型。顺便说一下还有一点比较重要的是ValueType重写了Object基类的 Equals 方法和 GetHashCode 方法所以当使用Equals比较两个值类型的时候系统会比较两个值类型的各个属性是否相等再返回结果这就是所谓的相等性 。与此相对引用类型在使用Equals的时候会在后台调用object.ReferenceEquals换言之引用类型在比较相等性的时候会考虑同一性 。 引用类型基类 对于引用类型就没有那么麻烦引用类型不会继承自ValueType。引用类型可以继承其他类型。 在内存中的表现 我们都知道C#将内存分为了两部分一个是Stack另外一个是Managed Heap。一般来说用于函数调用进栈函数返回出栈用的是Stack而当创造一个新的实例时会根据创建的实例属于值类型还是引用类型决定使用Stack还是Managed Heap。 值类型在内存中 当创建一个值类型对象时c#会在Stack上面创建一块空间这块空间就存放这个值类型对象。 int是一个典型的值类型如下语句 int age 10; 会存在于内存中的Stack上面。 添加图片注释不超过 140 字可选 如果把值类型的实例赋值给另外一个值类型那么效果就是复制一个新的值类型实例。 int myAge age; 添加图片注释不超过 140 字可选 引用类型在内存中 与值类型在内存中的表现不一样创建一个引用类型的实例不但会在Stack上面新建一个引用还会在Heap上面划分出内存以容纳该引用类型实例。用户在使用的时候通过Stack上面的变量间接引用该实例。 class Author { public string Name{get;set;} public int Age{get;set;} } Author author new Author(){Namedeatharthas, Age 32}; 添加图片注释不超过 140 字可选 注意看和值类型在内存中的区别引用类型通过Stack上的变量访问位于Heap上面的实例。 在赋值的时候拷贝的仅仅是Stack上面的变量新拷贝出来的对象和旧的对象指向的是同一块内存。 Author myAuthor author; 添加图片注释不超过 140 字可选 这个时候author和myAuthor指向同一块内存称为同一性通过调用 object.ReferenceEquals(myAuthor, author); 可以得到验证。 但可能有细心的朋友会有疑问了不是说int是值类型值类型是存在于Stack上面的吗为什么在author类里面它会在Heap里面呢赞一个细心值类型一般存在于Stack上面但如果某个值类型包含于引用类型那么它也会随着那个引用类型存放在Heap上面。 当参数时的行为区别 c#中的参数传递默认都是传值(by value)但是根据所传递对象是值类型还是引用类型它们的行为还是有所区别现在我们来看看。 值类型当参数 值类型当参数的时候传递到函数内部的是一份值类型的拷贝所以在函数内部修改这个拷贝不会影响原对象。除非我们在传递参数的时候使用了ref或者out。 引用类型当参数 如果参数是引用类型传递到函数内部的依然是一份拷贝但是这个拷贝是其在Stack上面的变量的拷贝就像上面的赋值那个例子。所以这个时候这份拷贝其实和原对象指向同一块内存指向同一性修改这个对象可以反映到原对象上面。 谨慎返回引用类型 编程是一项需要谨慎的工作有时候我们经常会犯一些错误而这些错误又是那么的不明显以至于不摔坑几次我们根本察觉不了考虑下面一个例子。 class People { public string Name{get;set;} public int Age {get;set;} private People _Father null; public People Father {get{return _Father;} } public People(People father) {_Father father; } public void ShowFather() {Console.WriteLine(fathers name is Father.Name and his age is Father.Age);} } class Program{static void Main(string[] args) {People father new People(null){Name father, Age 60 };People son new People(father);son.ShowFather(); Console.ReadLine();} } 添加图片注释不超过 140 字可选 看起来没什么问题对吧Father没有提供setter似乎是安全的。但是我们试试下面的代码。 static void Main(string[] args){ People father new People(null){Name father, Age 60 }; People son new People(father);var f son.Father;f.NameChanged;son.ShowFather();Console.ReadLine();} 添加图片注释不超过 140 字可选 看发现了什么外部改变了本来应该被封装所保护的Father属性封装被破坏了 稍微一想我们应该能明白这个道理Father属性返回的拷贝的变量和原Father变量指向同一块实例。要想解决这个问题我们要么返回一个值类型要么返回一个全新的对象。修改Father属性如下: public People Father { get { return new People(_Father._Father){ Name _Father.Name, Age _Father.Age };} } 再次测试 添加图片注释不超过 140 字可选 这次封装就没问题了。 总结 我们大概知道了值类型和引用类型的区别包括它们的行为在内存的居住方式以及使用引用类型时可能会遇到的暗坑希望大家通过阅读这篇文章能够加深一些对它们的了解少走一些弯路。

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

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

相关文章

福州建设高端网站wordpress文本地化

文章目录 文章专栏前言文章解读前言创建ROI案例1:直接截取ROI手动截取ROI 总结ROI套路获取窗口句柄截取ROI区域获取有效区域 Stop组合 文章专栏 Halcon开发 Halcon学习 练习项目gitee仓库 CSDN Major 博主Halcon文章推荐 前言 今天来看第三章内容,既然是…

阳江市建设网站百度怎么推广自己的产品

二叉树的存储与遍历 const int N 1e6 10;// 二叉树的存储,l数组为左节点,r数组为右结点 int l[N], r[N]; // 存储节点的数据 char w[N]; // 节点的下标指针 int idx 0;// 先序创建 int pre_create(int n) {cin >> w[n];if (w[n] #) return -1;l[n] pre_create(idx)…

wordpress单本小说站机加工接单什么平台好

面试题45&#xff1a;C中的字符串如何存储 在C中&#xff0c;字符串可以通过多种方式存储&#xff0c;但最常见和推荐使用的方式是通过 std::string 类&#xff0c;该类位于 <string> 头文件中。std::string 是一个类模板的实例&#xff0c;通常用于存储字符数组&#x…

做网站的知名品牌公司网页设计建网站

PHP加密解密也是常有的事&#xff0c;发现discuz论坛里的PHP加密解密处理类代码&#xff0c;感觉挺不错&#xff0c;在用的时候&#xff0c;要参考Discuz论坛的passport相关函数&#xff0c;后面我会附上使用方法。php加密解密处理类<?php /* 文件名称&#xff1a;cls.sys_…

广州应用网站设计湖州市建设中心网站

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 朋友们大家好&#xff0c;本篇文章我们详细讲解c中的动态内存管理 目录 1.C/C内存分布2.C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free3.c内存管理方式3.1new/delete对内…

北京大兴网站建设公司哪家好沈阳网站设计广告公司

本文整理自博主大学本科《计算机组成原理》课程自己完成的实验报告。 —— *实验环境为学校机房实验箱。 目录 一、实验目的 二、实验内容 三、实验步骤及实验结果 Ⅰ、单片机键盘操作方式实验 1、实验连线&#xff08;键盘实验&#xff09; 2、实验过程 四、实验结果的…

找建站公司做网站注意事项php网站带数据库

文章目录 前言1. 工具准备1.0 事先说明1.1 VSCode1.2 Fitten Code1.3 GitHub Copilot 2. 使用测评2.1 需求理解2.2 上下文理解 3. 总结推荐链接 开年尝鲜高质量国产AI编码助手——FittenCode 前言 2024年刚刚开局&#xff0c;清华大学 与 非十科技 就发布了全新的 VSCode AI…

浏览不良网站会被网警抓吗网站建设相关的工作

9个关于SSI芯片的必知问题-腾讯云开发者社区-腾讯云 (tencent.com)https://cloud.tencent.com/developer/article/1530543

长沙做网站微联讯点很好如何设置多个首页wordpress

要学好Spring&#xff0c;首先要明确Spring是个什么东西&#xff0c;能帮我们做些什么事情&#xff0c;知道了这些然后做个简单的例子&#xff0c;这样就基本知道怎么使用Spring了。Spring核心是IoC容器&#xff0c;所以一定要透彻理解什么是IoC容器&#xff0c;以及如何配置及…

南昌专门做网站的人网站页脚内容

回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测 目录 回归预测 | Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现基于GA-Elman遗传算法优化神经网络多输入单输…

南京网站建设 雷仁网络网站挂马个人问题还是服务商

S 是全脐点曲面当且仅当 S 是平面或者球面的一部分。 S_\text{ 是全脐点曲面当且仅当 }{S_\text{ 是平面或者球面的一部分。}} S 是全脐点曲面当且仅当 ​S 是平面或者球面的一部分。​ 证&#xff1a; 充分性显然&#xff0c;下证必要性。 若 r ( u , v ) r(u,v) r(u,v)是…

杨浦网站建设哪家好手机网站怎么做微信登陆

来都来了给我点个赞收藏一下再走呗&#x1f339;&#x1f339;&#x1f339;&#x1f339;&#x1f339; 目录 一、下载需要用到的python库selenium 二、selenium的基本使用 1.在python代码引入库 2.打开浏览器 3.元素定位 1&#xff09;通过id定位 2&#xff09;通过标…

如何做泰国网站网站建设肆金手指排名6

需求场景 多个aws账户&#xff0c;登陆麻烦且不安全&#xff0c;SSO单点功能并且外部身份提供者 — 如果您要管理外部身份提供者&#xff08;IdP&#xff09;&#xff08;例如 Okta 或 Active Directory&#xff09;中的用户。 官方文档&#xff1a;https://docs.aws.amazon.c…

消息网站怎么做WordPress七牛防盗链

git log--oneline --oneline 标记的作用是把每一个提交信息压缩为一行。默认情况下只会展示提交 ID与提交信息的首行。git log --oneline的结果如下 方法一&#xff1a; git reset --hard~回退几个版本 git reset --hard~3 表示回退三个版本&#xff0c;即从8309203回到93b1…

高效简便的网站开发电商运营roi怎么算

介绍 如果您的工作配置与 Java 有一定的关系&#xff0c;您一定已经注意到 了Java 最新稳定版本 Java 21 引起了很多关注。 这个新版本引入了一些未来的功能&#xff0c;改进了之前引入/孵化的一些突破性功能&#xff0c;弃用了多余的功能&#xff0c;并删除了一些错误。它使…

家装网站建设案例宠物网站 模板

欧洲X射线自由电子激光器抗辐射像素传感器的设计和初步试验 摘要 目前正在汉堡建造的欧洲X射线自由电子激光器的高强度和高重复率需要硅传感器&#xff0c;该传感器可以在高偏置电压下工作3年&#xff0c;承受高达1 GGy的X射线剂量。在AGIPD合作范围内&#xff0c;研究了由四家…

梦幻创意北京网站建设手机在线做ppt模板下载网站

XML&#xff08;可扩展标记语言&#xff09;是一种常用的数据格式&#xff0c;用于存储和交换数据。在Java中&#xff0c;XML解析是一项重要的任务&#xff0c;它允许您从XML文档中提取和操作数据。本篇博客将从基础开始&#xff0c;详细介绍如何在Java中解析XML文档&#xff0…

路由 拦截 网站开发网站首页备案号链接

问题&#xff1a; npm安装 依赖失败&#xff0c;找不到所需依赖。 原因&#xff1a; npm镜像源中没有该依赖。&#xff08;大概率是因为依赖最近刚更新&#xff0c;当前镜像源没有同步&#xff09; 解决&#xff1a; 查看自己的npm镜像&#xff1a;npm config get registry…

安徽金路建设集团有限公司网站深圳福田发现1例阳性

TypeScript的type是一个关键字&#xff0c;用来定义一个类型别名https://www.typescripttutorial.net/typescript-tutorial/typescript-types/。类型别名可以给一个已有的类型起一个新的名字&#xff0c;或者组合多个类型成为一个新的类型。例如&#xff1a; // 给string类型起…

三一国际网站设计asp系统网站怎么做优化

自Express 4.16.0 版本开始&#xff0c;Express 内置了3个常用的中间件&#xff0c;极大的提高了 Express 项目的开发效率和体验: 1.express.static 快速托管静态资源的内置中间件&#xff0c;例如: HTML 文件、图片、CSS 样式等 (无兼容性) 2.express.json 解析JSON 格式的请…