C#区分值类型和引用类型【一文读懂】

devtools/2024/12/22 2:29:12/

目录

C#区分值类型和引用类型

1. 存储位置

2. 数据类型

3. 赋值

4. 默认值

5. 内存管理


       本篇文章来分享一下C#的值类型和引用类型,主要从存储位置,数据类型,赋值,默认值,内存管理5个方面进行区分。

C#区分值类型和引用类型

1. 存储位置

1)值类型:在栈上分配内存。存储的是数据本身

2)引用类型:在堆上分配内存。存储的是数据的引用(内存地址)

2. 数据类型

1)值类型:byte,short,int,long,float,double,decimal,bool,char,struct,enum

2)引用类型:string字符串,数组,class类,interface接口,delegate委托

3. 赋值

1)值类型:赋值时复制数据。修改一个变量不会影响其他变量

2)引用类型:赋值时复制引用。修改对象会影响所有引用该对象的变量

//值类型
int a = 5;
int b = a; //复制值
b = 10; //a仍为5//引用类型
int[] arr1 = new int[] { 666 };
int[] arr2 = arr1;
arr1[0] = 888;
Console.WriteLine(arr2[0]);//888

4. 默认值

1)值类型:默认值为该类型的零值(如 0、false)

2)引用类型:默认值为 null,表示没有指向任何对象

5. 内存管理

1)值类型:不需要垃圾回收,通常更轻量

2)引用类型:由垃圾回收机制管理,可能导致更高的内存开销

总结而言,值类型更适合存储小型数据,而引用类型适合处理复杂对象。

       好了,本次的分享到这里就结束啦,希望对你有所帮助~


http://www.ppmy.cn/devtools/114698.html

相关文章

如何理解BCEWithLogitsLoss()

1.示例1 logit[0.5 -1.0 2.0] targets[1 0 1]# δsigmoid(x) pδ(logits)[δ(0.5) δ(-1.0) δ(2.0)][0.6225 0.2689 0.8808]loss1 -[1 log(0.6225) 0 log(1 - 0.6225)] ≈ 0.4744 loss2 -[0 log(0.2689) 1 log(1 - 0.2689)] ≈ 0.3133 loss3 -[1 log(0.8808) 0 …

23.面试题02.07链表相交

public class Solution {public ListNode getIntersectionNode(ListNode headA, ListNode headB) {ListNode apheadA;ListNode bpheadB;int lenA0,lenB0;//求两个链表长度while(ap!null){apap.next;lenA;}while(bp!null){bpbp.next;lenB;}apheadA;bpheadB;int len0;//用来计算让…

【Day14-单例设计模式动态代理】

单例设计模式 什么是设计模式(Design pattern) ? 一个问题通常有n种解法,其中肯定有一种解法是最优的,这个最优的解法被人总结出来了,称之为设计模式。设计模式有20多种,对应20多种软件开发中会遇到的问题…

如何删除EXCELL文件中的空行?

1,选择某一列 2,点击《开始》《查找和选择》>《定位条件》,调出《定位条件》的选择框; 3,在定位条件选项框,选择《空值》; 4,找到变灰被选中的某一行,右击《删除》 5&…

C++: 类和对象(上)

📔个人主页📚:秋邱-CSDN博客☀️专属专栏✨:C🏅往期回顾🏆:从C语言过渡到C🌟其他专栏🌟:C语言_秋邱 ​ 面向过程和面向对象 C 语言被认为是面向过程的编程…

vagrant+virtualbox+ubuntu22.04无法上网问题

一、过程 vagrantfile配置私有网络 config.vm.network "private_network", ip: "192.168.56.10"启动虚拟机,可以ping通百度的实际IP,ping不通域名修改/etc/netplan/50-vagrant.yaml,配置DNS network:renderer: Networ…

优化 Elasticsearch 集群性能:解决节点压力不均衡问题及分片策略调整

在管理 Elasticsearch 集群时,我们经常会遇到节点间压力不均衡的问题,这通常是由不合理的分片策略导致的。本文将分享一个真实案例的解决过程,以及如何优化分片策略来提升集群整体性能。 1. 问题描述 在我们的 Elasticsearch 集群中,我们发现数据节点之间的 JVM 内存压力…

YOLOv9改进系列,YOLOv9主干网络替换为RepViT (CVPR 2024,清华提出,独家首发),助力涨点

摘要 轻量级视觉变换器(ViTs)在资源受限的移动设备上表现出优越的性能和较低的延迟,相比之下轻量级卷积神经网络(CNNs)稍显逊色。研究人员发现了许多轻量级 ViTs 和轻量级 CNNs 之间的结构联系。然而,它们在块结构、宏观和微观设计上的显著架构差异尚未得到充分研究。在…