c#值类型和引用类型

1:值类型继承自system.valueType,引用类型继承自system.objectType.

值类型:

存储在栈内存中。

包括整数、浮点数、字符、布尔值和结构体等。

复制时会创建一个完全独立的副本。

引用类型:

存储在堆内存中,而变量本身存储在栈内存中,指向堆内存中的对象。

包括类、接口、委托和数组等。

复制时只是复制了引用,即指向同一对象的多个引用变量会共享相同的对象。

2:值传递是会创建一个新的副本,即在方法中修改了传递过来的变量,原来定义的变量值不会发生改变

3.引用传递,修改了传递过来的变量,原来的变量的值也会发生改变,因为引用传递指向同一个内存地址。下面以class 引用类型举例

4.字符串 (string) c#中字符串比较特殊,它是引用类型,但作为参数传递时,会创建一份新的副本,修改变量时,原来的值不会发生改变

相关推荐
阿蒙Amon8 小时前
C#每日面试题-重写和重载的区别
开发语言·c#
阿蒙Amon8 小时前
C#每日面试题-委托和事件的区别
java·开发语言·c#
bjzhang7510 小时前
C#操作SQLite数据库
数据库·sqlite·c#
烛阴11 小时前
C# 正则表达式(3):分组与捕获——从子串提取到命名分组
前端·正则表达式·c#
时光呀时光慢慢走14 小时前
C# WinForms 实战:MQTTS 客户端开发(与 STM32 设备通信)
开发语言·c#
时光呀时光慢慢走15 小时前
MAUI 开发安卓 MQTT 客户端:实现远程控制 (完整源码 + 避坑指南)
android·物联网·mqtt·c#
WebRuntime15 小时前
问世间,exe是何物?直教AI沉默、Web寡言(4)
javascript·c#·.net·web
缺点内向16 小时前
如何在 C# 中将 Word 文档转换为 EMF(增强型图元文件)
开发语言·c#·word·.net
MyBFuture16 小时前
C# 哈希表与堆栈队列实战指南
开发语言·windows·c#·visual studio
猫不吃咸鱼18 小时前
Unity中攻击检测敌人的多种方法
游戏·unity·c#·游戏引擎