c#值类型和引用类型

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

值类型:

存储在栈内存中。

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

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

引用类型:

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

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

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

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

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

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

相关推荐
CN.LG29 分钟前
C# 实现串口通信
开发语言·c#
我是唐青枫1 小时前
C# delegate 委托使用教程
开发语言·c#·.net
一坨仙女2 小时前
.net core强大的列表对比取数
c#·.netcore
码农君莫笑2 小时前
在 Blazor 和 ASP.NET Core 中使用依赖注入和Scoped 服务实现数据共享方法详解
前端·后端·c#·.netcore·visual studio
浮生如梦_2 小时前
C#Halcon交互绘制ROI
开发语言·图像处理·计算机视觉·c#·视觉检测·交互
one9962 小时前
WPF 数据绑定中的通知机制及其性能考虑
c#·.net·wpf
Eiceblue4 小时前
.NET框架用C#实现PDF转HTML
开发语言·pdf·c#·html·.net
dgwxligg5 小时前
C# 中 `new` 关键字的用法
java·前端·c#
nuclear20115 小时前
C# 在PDF中添加和删除水印注释 (Watermark Annotation)
c#·pdf水印·给pdf添加水印·删除pdf水印·移除pdf水印·pdf注释水印
向宇it6 小时前
【从零开始入门unity游戏开发之——unity篇04】unity6基础入门——场景窗口(Scene)和层级窗口(Hierarchy)介绍
开发语言·unity·c#·游戏引擎