前面的内容,我们了解了面向对象编程的基本概念,以及在C#中如何实现;同时,也提到过在C#中的数据类型分为引用类型和值类型,本课,我们对C#中的常用类型做一些疏理。

首先来看引用类型。最常用的引用类型就是前面内容中介绍的类(class)类型;而在C#中,还有一个比较常用的引用类型就是委托(delegate)类型,后续会有详细讨论。引用类型的特点就是,我们定义的对象(实例)实际是一个指向对象数据块的“地址”;在传递过程中,只需要传递这个“地址”就可以了,并不需要复制大量的对象数据,这对于数据传递效率来讲是有利的。

C#中的常用值类型包括结构(struct)和枚举(enum)。值类型的变量直接指向数据,在传递时默认会复制其数据内容,前面的课程中已看到相关的示例。

引用类型和值类型是C#和.NET Framework平台中基本的原始类型,在编程处理实际问题时,还会有一些基本的类型可以使用,这些类型都定义在System命名空间,而且很多类型在C#中都有相应的别名,下面分别介绍。

整数类型,用于处理没有小数部分的数据,包括有符号整数和符号整数。有符号整数用于处理正整数、零和负整数,无符号整数用于处理零和正整数。

具体的有符号整数类型包括:

  • sbyte,处理8位有符号整数,对应System.SByte结构类型。请注意,8位是一个字节,所以,sbyte和byte类型也用于处理字节数据。
  • short,处理16位有符号整数,对应System.Int16结构类型。
  • int,处理32位有符号整数,对应System.Int32结构类型。
  • long,处理64位有符号整数,对应System.Int64结构类型。

相应的无符号整数类型包括:

  • byte,处理8位无符号整数,对应System.Byte结构类型。
  • ushort,处理16位无符号整数,对应System.UInt16结构类型。
  • uint,处理32位无符号整数,对应System.UInt32结构类型。
  • ulong,处理64位无符号整数,对应System.UInt64结构类型。

处理有小数部分的数据类型包括:

  • float,单精度浮点型,对应System.Single结构类型。
  • double,双精度浮点型,对应System.Double结构类型。
  • decimal,十进制类型,对应System.Decimal结构类型,这是基本类型中处理数值范围最大的。

此外,在代码中的数字字面量,默认的整数是int类型,如直接用0、1等数据,它们的类型就是int。默认的浮点数是double类型,如0.0、0.123等。在书写数字时,如果需要指定其类型,可以使用一些字母后缀,如:

  • L或l,数字为long类型,如10L。
  • UL或ul,数字为ulong类型,如123UL。
  • F或f,数字为float类型,如99f、0.123F。
  • D或d,数字为double类型,如1D。
  • M或m,数字为decimal类型,如1M、1.2M。

布尔类型,又称为逻辑类型,在C#中使用bool关键字定义,对应了System.Boolean结构类型。其值只包括True和False,在C#中分别是true值和false值。

char类型用于处理单个字符,对应System.Char结构类型;字符字面量使用一对单引号定义,如'A'。

string类型用于定义字符串,即文本内容,对应于System.String类类型;字符串字面量使用一对双引号定义,如"ABC123"。

此外,在处理日期和时间信息时可以使用DateTime和TimeSpan等结构类型,它们都定义在System命名空间。

以上是C#和.NET Framework中最基本的数据类型,在程序中会很广泛地应用;接下来的几课,我们会讨论整数、浮点数、Decimal、布尔、字符、字符串等数据类型的应用,以及运算等相关操作。

最后,给出基本的C#和.NET Framework数据类型的对照表,其中包括数据名称和取值范围(没错,在计算机中的数据处理范围是有限的!!!)

enter image description here

CHY软件小屋原创作品!