1,值类型对象有两种表示形式:未装箱和已装箱,相反引用类型总是处于已装箱形式
2,值类型从system.valuetype派生。该类型提供了与system.object相同的方法。但是system.valuetype重写了equals方法,能在两个对象的字段值完全匹配的前提下返回true。此外,system.valuetype重写了gethashcode方法。生成哈希码时,这个重写方法所用的算法会将对象的实例字段中的值考虑在内。由于这个默认实现存在性能问题,所以定义自己的值类型时应重写equals和gethashcode方法,并提供他们的显示实现
3,由于不能将值类型作为基类型来定义新的值类型或者新的引用类型,所以不应在值类型中引入任何新的虚方法,所有方法都不能是抽象的,所有方法都隐式密封(不可重写)
4,引用类型的变量包含堆中对象的地址。引用类型的变量创建时初始化为null,表名当前不指向有效对象。视图使用null引用类型变量会抛出nullreferenceexception异常。相反,值类型的变量总是包含基础类型的值,而且值类型的所有成员都初始化为0.值类型变量不是指针,访问值类型不可能抛出nullreferenceexcption异常
5,将值类型变量赋值给另一个值类型变量,会执行逐字段的赋值。将引用类型的变量赋值给另一个引用类型的变量只复制内存地址
6,两个或多个引用能引用堆中的同一个对象,所以对一个变量执行的操作可能影响到另一个引用的对象。相反,值类型变量自成一体,对值类型变量执行的操作不可能影响另一个值类型变量
7,由于未装箱的值类型不在堆上分配,一旦地定义了该类型的一个示例的方法不在活动,为他们分配的存储就会被释放,而不是等着进行垃圾回收
编辑推荐:
- 值类型对象的两种表示形式02-21
- VS2015常用快捷键详解02-21
- C#中算法的实例详解02-21
- 最新版近乎v5.0新型社区发布介绍02-21
- 高性能缓存系统(Memcached)的实例介绍02-21
- WPF开发Surface Dial实例教程02-21
- System.Object是什么?如何使用System.Object?02-21
- MVC 5限制所有HTTP请求必须是POST方式02-21
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- C#中算法的实例详解
C#中算法的实例详解
26-02-21 - 最新版近乎v5.0新型社区发布介绍
最新版近乎v5.0新型社区发布介绍
26-02-21 - 高性能缓存系统(Memcached)的实例介绍
高性能缓存系统(Memcached)的实例介绍
26-02-21 - MVC 5限制所有HTTP请求必须是POST方式
MVC 5限制所有HTTP请求必须是POST方式
26-02-21 - 分享用.Net Core实现图片上传下载的实例教程
分享用.Net Core实现图片上传下载的实例教程
26-02-21 - asp .net 面试题及答案分享
asp .net 面试题及答案分享
26-02-21 - wcf什么意思?关于wcf的实例教程
wcf什么意思?关于wcf的实例教程
26-02-21 - C# 并行任务之Parallel类的实例介绍
C# 并行任务之Parallel类的实例介绍
26-02-21 - Win10预览版10041反馈功能的改进让分类更清晰
Win10预览版10041反馈功能的改进让分类更清晰
26-02-21 - win10企业版如何激活,怎么激活Win10企业版
win10企业版如何激活,怎么激活Win10企业版
26-02-21
