c#值类型和引用类型

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

值类型:

存储在栈内存中。

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

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

引用类型:

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

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

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

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

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

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

相关推荐
weixin_537590452 小时前
《C程序设计语言》练习答案(练习1-13)
c语言·开发语言·c#
a17798877123 小时前
小程序上传图像失败
小程序·c#
JosieBook4 小时前
【C#】C# 所有关键字总结
开发语言·算法·c#
我是唐青枫5 小时前
C#.NET ConcurrentStack<T> 深入解析:无锁栈原理、LIFO 语义与使用边界
网络·c#·.net
黑棠会长5 小时前
ABP框架09.数据安全与合规:审计日志与实体变更追踪
分布式·安全·架构·c#·abp
JMchen1236 小时前
Android NDK开发从入门到实战:解锁应用性能的终极武器
android·开发语言·c++·python·c#·android studio·ndk开发
IT小哥哥呀7 小时前
基于windows的个人/团队的时间管理工具
windows·c#·wpf·时间管理
JosieBook8 小时前
【C#】C# 访问修饰符与类修饰符总结大全
前端·javascript·c#
星夜泊客9 小时前
C# : 引用类型都存在堆上吗
unity·c#
chiwei_hua9 小时前
如何在 Blazor Web 前端中使用 C# 进行数据交互?
前端·c#·交互