(原创)c#学习笔记08--面向对象编程简介02--OOP技术07--引用类型和值类型
2015-11-03 13:50
841 查看
[b]8.2.7 引用类型和值类型 [/b]
在C#中,数据根据变量的类型以两种方式中的一种存储在一个变量中。变量的类型分为两种:引用类型和值类型,其区别如下:
值类型在内存的一个地方存储它们自己和它们的内容。
引用类型存储指向内存中其他某个位置(称为堆)的引用,而在另一个位置存储内容。
实际上,在使用C#时,不必过多地考虑这个问题。到目前为止,所使用的string变量(这是引用类型)与使用其他简单变量(大多数是值类型,例如int)的方式完全相同。
值类型和引用类型的一个主要区别是,值类型总是包含一个值,而引用类型可以是 null,表示它们不包含值。但是,可以使用可空类型(这是泛型的一种形式)创建一个值类型,使值类型在这个方面的行为方式类似于引用类型(即可以为null)。这是一个高级论题,详见第12章。
只有 string 和 object 简单类型是引用类型,但数组也是隐式的引用类型。我们创建的每个类都是引用类型,这就是在这里说明这一点的原因。
note: 结构类型和类的重要区别是,结构类型是值类型。
在C#中,数据根据变量的类型以两种方式中的一种存储在一个变量中。变量的类型分为两种:引用类型和值类型,其区别如下:
值类型在内存的一个地方存储它们自己和它们的内容。
引用类型存储指向内存中其他某个位置(称为堆)的引用,而在另一个位置存储内容。
实际上,在使用C#时,不必过多地考虑这个问题。到目前为止,所使用的string变量(这是引用类型)与使用其他简单变量(大多数是值类型,例如int)的方式完全相同。
值类型和引用类型的一个主要区别是,值类型总是包含一个值,而引用类型可以是 null,表示它们不包含值。但是,可以使用可空类型(这是泛型的一种形式)创建一个值类型,使值类型在这个方面的行为方式类似于引用类型(即可以为null)。这是一个高级论题,详见第12章。
只有 string 和 object 简单类型是引用类型,但数组也是隐式的引用类型。我们创建的每个类都是引用类型,这就是在这里说明这一点的原因。
note: 结构类型和类的重要区别是,结构类型是值类型。
相关文章推荐
- 深刻理解C#中资源释放
- C# 给对象赋null值会释放内存吗?
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术06--事件
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术05--运算符重载
- C# 命名规范
- 基于gdal用c#读取hdf4文件
- C#读取HDF5文件.doc
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术04--对象之间的关系
- c# 内存溢出错误
- C# 匿名类型的基本特征
- C#中的 == 和equals()区别浅析
- C# 拷贝文件到另一个目录
- c#视频位置
- C#中的List<string>泛型类示例
- C#文件(夹)基本操作
- C# 如何判断系统是否是静音
- c# 泛型
- (原创)c#学习笔记08--面向对象编程简介02--OOP技术03--多态性
- C#第五天
- C# API 大全(简版)