值类型和引用类型

简介:
值类型(变量直接包含数据) 简单类型
枚举
结构
引用类型(变量包含对存储对象的引用)
接口
委托
数组

这两者类型有什么区别呢?很简单。值类型是直接包含了变量的具体值,引用类型包含的是指针(至少你可以这么理解)
他们的区别看以下的代码就立即明了
1   int  i1  =   10 ;
2   int  i2  =  i1;
3  System.Console.WriteLine(i1.Equals(i2)); // 值相等
4  System.Console.WriteLine( object .ReferenceEquals(i1,i2)); // 引用不相等
5   object  o1  =   new   object ();
6   object  o2  =  o1;
7  System.Console.WriteLine(o1.Equals(o2)); // 值相等
8  System.Console.WriteLine( object .ReferenceEquals(o1, o2)); // 引用相等

要记住哪些不是引用类型更简单了:除了类、接口、委托和数组外,其他都是值类型。



本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806911

相关文章
|
4月前
|
存储 Java C#
C# 中的值类型与引用类型
在 C# 编程中,值类型和引用类型的区别至关重要,直接影响内存管理、性能优化及编程模式选择。值类型直接存储数据(如 `int`、`float`),而引用类型存储数据的引用地址(如 `class`、`string`)。值类型的赋值涉及数据复制,适合小数据量;引用类型仅复制引用,适合大数据量处理但需关注垃圾回收。本文通过具体代码示例详细解析二者的定义、存储方式及性能影响,并提供实战案例分析及易错点避免方法,帮助读者更好地理解和应用。
95 2
|
存储 C# C++
值类型和引用类型
值类型和引用类型
|
存储 Java Go
值类型和引用类型|学习笔记
快速学习值类型和引用类型。
118 0
值类型和引用类型|学习笔记
再聊一次值类型和引用类型
这是一个托管的值类型,表示array的一个片断, 在用做websocket接收数据的载体时我发现每次值传递后, 这个ArraySegment<byte>貌似发生了变化。这勾起了我的探究欲。
再聊一次值类型和引用类型
|
存储 开发框架 .NET
C#系列之值类型和引用类型
C#系列之值类型和引用类型
174 0
C#系列之值类型和引用类型
|
存储 Java 程序员
C#基础——值类型和引用类型
C#基础——值类型和引用类型
599 0
C#基础——值类型和引用类型
|
存储 数据格式 JSON
第183天:引用类型和值类型
一、内存分配 1、数值型内存分配 1 2 var num1; //这个时候不进行内存分配 3 var num3=9;//分配内存 4 var num4=num3;//会不会分配 5 6 // 这里到底分配还是不分配内存?? 7 // 答案 --分配内存 彼此拥有独立的内存空间,互不影响 8 console.
1016 0
|
算法 C#
c#值类型与引用类型区别
值类型对象的两种表示方式:未装箱和已装箱,引用类型总是处于已装箱 值类型从System.ValueType派生。该类型提供了与System.Object相同方法,但System.ValueType重写了Equals方法, 能在两个对象的自断值完全匹配的前提下返回true。
975 0