《.NET框架程序设计》第五章 基元类型、引用类型与值类型

转载 2004年09月02日 20:09:00

一、基元类型(primitive type)编译器直接支持的数据类型。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

引用类型(reference type)总是从托管堆上进行分配。内存的回收通过垃圾收集器。

值类型(value type)通常分配在线程的堆栈中(当然,也可以被嵌入到一个引用类型的对象中)。值类型实例不受垃圾收集器的控制。

 

二、尽量使用FCL类型名:在开发中,尽量使用FCL类型名,也就是System.StringSystem.Int32等等。而不要使用stringint等基元类型名。因为FCL类型名具体的可以看出类型的一些限制,如Int32就是表示32位的有符号数,比较直观;另外,一些基元类型和对应的FCL类型名称不相同,容易引起混淆,如基元类型float对应的FCL类型名是System.Single;最后,同一个基元类型,可能在不同的编程语言中对应不同的FCL类型,这就会带来了一系列的潜在的问题。

三、类型转换:可以使用System.Convert类型的静态方法在不同类型的对象之间进行转型。Convert类型中的静态方法ChangeType可以将一个类型转换为另外一个任意的类型,前提是被转换类型实现了Iconvertible接口,特别是其中的ToType方法。(是否可以利用这个技术来实现点什么新的功能??)

四、溢出的异常的控制:许多基元类型的算术运算都会导致结果溢出,缺省情况下,这种溢出是不会抛出异常的,可以使用/checked+命令行开关告诉编译器使用带溢出的IL指令来产生代码。(如何在开发环境中打开这个开关??)另一种方法是在代码中使用checkedunchecked操作符来开关一段代码的溢出检查。我个人觉得没有必要使用checkedunchecked操作符来做这种精细的控制,虽然直接打开编译器的溢出检测开发会降低一些应用程序的性能,但是这种影响可以不必考虑。

五、引用类型和值类型的区别:任何都是引用类型,任何结构枚举都是值类型。另外,所有的值类型都必须继承自System.ValueType类型。CLR不允许一个值类型被用作基类型。

六、值类型的装箱与拆箱:当需要尽量提高一段程序的执行性能时,可以对这段程序进行分析,尽量减少其中的装箱和拆箱的操作。而之所以很多方法都提供了重载的版本,目的之一就是减少一些常用值类型的装箱操作。

C# 基元类型 引用类型和值类型

基元类型 引用类型 值类型
  • Stive_SourceXin
  • Stive_SourceXin
  • 2016年08月11日 17:05
  • 636

.Net常见面试题整理(1)——值类型和引用类型

随笔- 39  文章- 0  评论- 105  .Net常见面试题整理(1)——值类型和引用类型 为了防止不提供原网址的转载,特在这里加上原文链接:ht...
  • Litt_J
  • Litt_J
  • 2014年12月16日 02:45
  • 757

第5章:基元类型、引用类型和值类型

5.3 值类型的装箱和拆箱 1.为什么说值类型比引用类型”轻”,原因是什么? 2.为什么要装箱? 3.什么是装箱? 4.装箱时,实际发生了什么? 5.我们为什么要理解装箱/拆箱? 6.泛型...
  • huasa2239635117
  • huasa2239635117
  • 2017年12月08日 15:53
  • 12

第5章:基元类型、引用类型和值类型(一)

5.1编程语言的基元类型 需要掌握:1.什么是基元类型 2.它的特性 3.作者认为编程时使用FCL类型名称的理由 4.隐式转换和显示转换 5.字面值是什么 6.check和uncheck的...
  • huasa2239635117
  • huasa2239635117
  • 2017年10月28日 09:51
  • 53

C#中值类型和引用类型及类型的转换

在 C# 中,变量分为以下几种类型: 值类型(Value types) 引用类型(Reference types) 指针类型(Pointer types) 值类型 值类型变量可以直接分配给一...
  • wkyseo
  • wkyseo
  • 2016年10月25日 09:52
  • 758

C# 对象比较(值类型、引用类型)

/// /// 引用对象比较 /// /// /// /// public static bo...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2015年10月09日 20:46
  • 1842

C#详解值类型和引用类型区别

首先,什么是值类型,什么是引用类型? 在C#中值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。 值类型(value type):byte,short,int,lo...
  • qiaoquan3
  • qiaoquan3
  • 2016年04月20日 17:59
  • 26937

.NET值类型引用类型

值类型变量的赋值: 值类型变量中保存的是实际数据,在赋值的时候只是把数据复制一份,然后赋给另一个变量。 例子1: int var1=2;  int var2=var1; //编译器会先...
  • u011358288
  • u011358288
  • 2015年10月13日 17:20
  • 100

.NET中的值类型和引用类型~~~

.NET中的值类型和引用类型~~~ (2009-06-06 00:24:28) 转载▼ 标签: 编编编 it 分    .net中的数据类型是程序...
  • youwenyouwen
  • youwenyouwen
  • 2014年11月18日 13:54
  • 289

.NET中的值类型和引用类型

.net中的数据类型是程序员需要认真掌握的基础知识。.NET 中类型的两个基本类别是“值类型”和“引用类型”。基元类型、枚举和结构为值类型。类、字符串、标准模块、接口、数组和委托为引用类型。     ...
  • u014279553
  • u014279553
  • 2015年04月05日 09:17
  • 226
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《.NET框架程序设计》第五章 基元类型、引用类型与值类型
举报原因:
原因补充:

(最多只允许输入30个字)