首页 > 编程 > C# > 正文

C#的引用类型

2023-05-09 18:58:27
字体:
来源:转载
供稿:网友

本篇文章粗略地说明了C#引用类型的种类和含义,如有对C#引用类型有疑问的可以参考一下,但对于引用类型的理解可能有误,希望高手能留言指教。

C#中的主要引用类型有:数组,类,接口和委托。即,这些数据类型在内存中不存储真正的值,而存储的是值的地址。 

值类型变量直接把变量的值保存在堆栈中,引用类型的变量把实际数据的地址保存在堆栈中,而实际数据则保存在堆中。注意,堆和堆栈是两个不同的概念,在内存中的存储位置也不相同,堆一般用于存储可变长度的数据,如字符串类型;而堆栈则用于存储固定长度的数据,如整型类型的数据int(每个int变量占用四个字节)。由数据存储的位置可以得知,当把一个值变量赋给另一个值变量时,会在堆栈中保存两个完全相同的值;而把一个引用变量赋给另一个引用变量,则会在堆栈中保存对同一个堆位置的两个引用,即在堆栈中保存的是同一个堆的地址。在进行数据操作时,对于值类型,由于每个变量都有自己的值,因此对一个变量的操作不会影响到其它变量;对于引用类型的变量,对一个变量的数据进行操作就是对这个变量在堆中的数据进行操作,如果两个引用类型的变量引用同一个对象,实际含义就是它们在堆栈中保存的堆的地址相同,因此对一个变量的操作就会影响到引用同一个对象的另一个变量。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表