NET将数据类型分为值类型(value type)和引用类型(reference type)
来源:互联网 发布:vision软件的使用 编辑:程序博客网 时间:2024/05/25 19:59
.NET将数据类型分为值类型(value type)和引用类型(reference type)
一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。
一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。
值类型
(1)这个类型分配在哪里? 分配在栈上
(2)变量是怎么表示的? 值类型变量是局部复制
(3)基类型是什么? 必须继承自System.ValueType
(4)这个类型能作为其他类型的基类吗? 不能。值类型是密封的,不能被继承
(5)默认的参数传递是什么? 变量是按值传递的(也就是,一个变量的副本被传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗 不能。值类型不好放在堆上,因此不需要被终结。
(7)我可以为这个类型定义构造函数吗? 是的,但是默认的构造函数被保留(也就是自定义构造函数必须全部带有参数)
(8)这个类型的变量什么时候消亡? 当它们越出定义的作用域时
引 用 类 型
(1)这个类型分配在哪里?
分配在托管堆上
(2)变量是怎么表示的?
引用类型变量指向被分配得实例所占的内存
(3)基类型是什么?
可以继承自除了System.ValueType以外的任何类型,只要那个类型不是sealed的
(4)这个类型能作为其他类型的基类吗?
是的。如果这个类型不是密封的,它可以作为其他类型的基类
(5)默认的参数传递是什么?
变量是按引用传递(例如,变量的地址传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗
可以间接地重写
(7)我可以为这个类型定义构造函数吗?
当然!
(8)这个类型的变量什么时候消亡?
当托管堆被垃圾回收时。
一个具有值类型(value type)的数据存放在栈内的一个变量中。即是在栈中分配内存空间,直接存储所包含的值,其值就代表数据本身。值类型的数据具有较快的存取速度。
一个具有引用类型(reference type)的数据并不驻留在栈中,而是存储于堆中。即是在堆中分配内存空间,不直接存储所包含的值,而是指向所要存储的值,其值代表的是所指向的地址。当访问一个具有引用类型的数据时,需要到栈中检查变量的内容,该变量引用堆中的一个实际数据。引用类型的数据比值类型的数据具有更大的存储规模和较低的访问速度。
值类型
(1)这个类型分配在哪里? 分配在栈上
(2)变量是怎么表示的? 值类型变量是局部复制
(3)基类型是什么? 必须继承自System.ValueType
(4)这个类型能作为其他类型的基类吗? 不能。值类型是密封的,不能被继承
(5)默认的参数传递是什么? 变量是按值传递的(也就是,一个变量的副本被传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗 不能。值类型不好放在堆上,因此不需要被终结。
(7)我可以为这个类型定义构造函数吗? 是的,但是默认的构造函数被保留(也就是自定义构造函数必须全部带有参数)
(8)这个类型的变量什么时候消亡? 当它们越出定义的作用域时
引 用 类 型
(1)这个类型分配在哪里?
分配在托管堆上
(2)变量是怎么表示的?
引用类型变量指向被分配得实例所占的内存
(3)基类型是什么?
可以继承自除了System.ValueType以外的任何类型,只要那个类型不是sealed的
(4)这个类型能作为其他类型的基类吗?
是的。如果这个类型不是密封的,它可以作为其他类型的基类
(5)默认的参数传递是什么?
变量是按引用传递(例如,变量的地址传入被调用的函数)
(6)这个类型能重写System.Object.Finalize()吗
可以间接地重写
(7)我可以为这个类型定义构造函数吗?
当然!
(8)这个类型的变量什么时候消亡?
当托管堆被垃圾回收时。
- NET将数据类型分为值类型(value type)和引用类型(reference type)
- C#中的参数传递:值类型(value type)和引用类型(reference type)
- C#中的参数传递:值类型(value type)和引用类型(reference type)
- 参数传递:值类型(value type)和引用类型(reference type)
- C#值类型与引用类型(Value Type and Reference Type)
- 关于Swift中的值类型(Value Types)与引用类型(Reference Type)
- .NET 数据类型之指针类型(type*)
- .NET 数据类型之指针类型(type*)
- 关于golang中的引用类型(reference type)
- 数据类型分为基本类型和引用类型
- Value Type 和 Reference Type
- Hibernate中实体类型(Entity Type)与值类型(Value Type)的概念分析
- (2)LUA程序设计-类型与值(type & value)
- 变量按数据类型分为基本类型和引用类型
- Java的数据类型分为两类:primitive和reference类型
- Value Type和Reference Type的区别
- swift中value type和reference type
- 值类型不是值类型(ValueType is NOT a Value Type):闲谈.Net类型
- COM 技术二
- [罗振辉]论金融危机下中国软件行业的发展
- 利用feof()函数复制文件的C代码(解决复制后文件多一字符的问题)
- COM 技术三
- 资源分少了怎么办?
- NET将数据类型分为值类型(value type)和引用类型(reference type)
- dup()、dup2()函数
- Windows Mobile 5.0 开发平台的搭建
- Spket Eclipse插件使用教程
- 解决MyEclipse编辑jsp输入.死机、代码提示死机问题
- sql server数据类型char和nchar,varchar和nvarchar,text和ntext的区别
- Warning: The XDE Component XDE Data Modeler has failed to load correctly.
- Java时间操作及格式化
- cluster服务器群的高手们