码迷,mamicode.com
首页 > Windows程序 > 详细

浅谈C#学习心得——数据类型

时间:2015-07-25 19:54:28      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:

曾经读过的一本的技术书里是这样写道的:

 "  面向对象编程吸取了结构化编程的精华,并将它和一些新概念结合在一起,由此得到一个不同的、更好的组织程序方法。大多数情况下,程序有两种组织方法:以代码(执行操作的对象)为中心或者以数据(受到影响的对象)为中心。只使用结构化方法进行编程时,程序一般以代码为中心来组织。这种方法可以认为是“代码作用于数据”。

     面向对象程序使用的是另一种方法,它们以数据为中心组织程序,其关键原理体现在“数据控制对代码的访问”。在面向对象语言中,定义了数据和作用于该数据的相应代码,因此数据类型用于准确定义应用于这些数据的操作。 "   

——摘自《C#4.0 完全参考手册》(美)Herbert Schildt著

 

   C#是一种强类型语言,所有的操作都要经过编译器的类型检查,非法操作将不能通过编译,这样做有助于防止出现错误,增强了程序的可靠性。在C#中,所有的变量、表达式和值都是有其类型。

  C#把数据类型分为两种:值类型和引用类型  。

两种类型的区别在于变量保存的内容。对于值类型,变量保存的是实际值,而对于引用类型,则是保存的为值的引用。

在C#中,所有的数据类型都以与平台无关的方式定义,以备将来C#和.Net迁移到其他平台上

 

1、值类型:C#主要包括13种值类型,通常称他们为简单类型或者基本类型。

1)整型:有8个预定义整形类型。  如下表:

名称CTS类型说明范围
sbyte System.SByte 8位有符号的整数 -128~127(-2^7~2^7-1)
short System.Int16 16位有符号短整数 -32768~32767(-2^15~2^15-1)
int System.Int32 32位有符号的整数 -2147483648~2147483647(-2^31~2^31-1)
long System.Int64 64位有符号长整型 -9223372036854775808~9223372036854775807 (-2^64~2^64-1)
byte System.Byte 8位无符号整形 0~255(0~2^8-1)
ushort System.UInt16 16位无符号短整型 0~65535(0~2^16)
uint System.UInt32 32位无符号整型 0~4294967295(0~2^32-1)
ulong System.UInt64 64位无符号长整型 0~18446744073709551615(0~2^64-1)

 

C#定义了各种整型的有符号形式和无符号形式。有符号整数和无符号整数的不同之处在于对整数高阶位的处理方式。对于有符号整数,编译器将产生代码,把整数的高阶位作为一个符号位,为0时表示正直,为1时表示负值。

 

2)浮点类型:分为单精度和双精度数值。如下表:

名称CTS类型说明位数范围
float System.Single 32位单精度浮点数 7 1.5E-45~3.4E+38
double System.Double 64位双精度浮点数 15/16 5E-324~1.7E+308

 

 

如果在代码中对某个非整数值硬编码,则编译器以便假定该变量是double,如果想指定该值为float,可以在其后加上字符F(或f)。例如:  float  f=12.5F

3)decimal类型:表示精度更高的浮点数,如下表:

名称CTS类型说明位数范围
decimal System.Decimal 128位高精度十进制数表示 28 1E-28~7.9E+28

 

这种类型多用于财务计算,不是基本类型,所以在计算式使用该类型会有性能损失。

如果要把数字制定为decimal类型,可以在数字后面加上字符M(或m)。例如:decimal d=12.60M

4)bool类型:用于包含布尔值true或false,如下表:

名称CTS类型说明位数
bool System.Boolean 表示true或false NA true或false

 

注意:bool值和整数不能互相隐式转换,如果变量(或函数的返回类型)声明为bool类型,就只能使用值true或false。如果试图使用0表示false,非0值表示true,就会出错。 5)字符类型:为了保存单个字符值,如下表:

名称CTS类型
char System.Char 表示一个16位的(Unicode)字符

注意:char类型的字面量是用单引号括起来,如果把字符放在双引号中,编译器会把它看作字符串,从而产生错误。

 

除了char表示字符字面量外,还可以用4位十六进制的Unicode值,带有数据类型转换的整数值或十六进制数表示它们。它们还可以用转义序列表示。

6)C#还定义了其他三种类别的值类型:枚举(enum)、结构(struct)和可空类型。

 

2、引用类型:C#支持两种预定义引用类型,如下表:

名称CTS类型说明
object System.Object 根类型,CTS中的其他类型都是从它派生而来的(包括值类型)
string System.String Unicode字符串

1)object类型:在C#中,object类型就是最终的父类型,所有内置类型和用户定义的类型都从它派生而来。

 

2)string类型:

虽然string类型的赋值更像值类型的赋值,但是string是一个引用类型。

string与引用类型有一些区别如:字符串是不可改变的。修改其中一个字符串,就会创建一个全新的string对象,而另一个字符串不发生任何变化。

字符串字面量放在双引号中。

 

浅谈C#学习心得——数据类型

标签:

原文地址:http://www.cnblogs.com/A-Lazy-Cat/p/4676396.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!