首页 > 代码库 > C#基础知识-数据类型(一)

C#基础知识-数据类型(一)

俗话说温故而知新,学习一门知识最好的方法就是不断的去咀嚼回味,学习编程更是如此。对于.NET平台中的C#语言而言,有着强大的类库、不断的在更新迭代几乎每隔一年都会更新一个新的模块,.NET Framwork也从1.0版本到现在最新的4.6的版本,从封闭性到近两年的开源,面对一个庞大的编程语言平台我们也要不断的去更新自己的知识结构。从这篇文章开始,让我们从一个初学者的身份去一步步的学习C#这门语言。

 

首先让我们来思考一下,什么是数据?数据能用来干什么?数据怎么来用?

数据其实很真实的存在我们的世界里,比如你的名字、你的性别、你的某一样物品的名字、甚至你的某种行为都可以转换成是一种数据,数据就是从这些基础上抽象从来的。有了不同的数据类型,我们才可以在计算机中更好的存储我们的数据,让数据分门别类,充分合理的利用我们的存储空间。在我们C#编程中使用的数据类型都是内置在.Net Framwork中。

C#中有15个预定义的类型,当然随着需求的增加也可以自定义,共有两大类 值类型和引用类型,引用类型有Object 和 String ,值类型又分为 整型:sbyte、short、long、int、byte、ushort、uint、ulong, 浮点类型:float 、double, 布尔类型:bool,字符类型:char, decimal类型。

 

1.值类型

1.1整型:

类型

名称

命名空间

说明

范围

整型

sbyte

System.Sbyte

8位有符号整数

-128 ~ 127

short

System.Int16

16位有符号整数

-32768 ~ 32767

int

System.Int32

32位有符号整数

-2147483648~ 2147483647

long

System.Int64

64位有符号整数

-263 ~ 263-1

byte

System.Byte

8位无符号整数

0 ~ 255

ushort

System.UInt16

16位无符号整数

0 ~ 216-1

uint

System.UInt32

32位无符号整数

0 ~ 232-1

ulong

System.UInt64

64位无符号整数

0 ~ 264-1

 

整型,顾名思义整数型及非小数。

那么什么是无符号的整数,什么是有符号的整数?

学习过计算机原理的应该就会明白,对于一个8位二进制的机器编码来说,有符号代表的是负数,无符号代表的是整数 例如0111 1111就是无符号的整数,1111 1111就是有符号的整数,第一位就是符号位。

 

1.2布尔型:

类型

名称

命名空间

说明

范围

布尔型

bool

System.Boolean

表示true或false

true或false

布尔类型一般用作逻辑判断,true为真、false为假。

 

1.3浮点类型:

类型

名称

命名空间

说明

范围

单精度浮点类型

float

System.Single

32位单精度浮点型

-3.4 * 1038至3.4 * 1038

双精度浮点型

double

System.Double

64位双精度浮点型

-1.79769e+308至1.79769e+308

float类型因为精度较低,用于较小的浮点数。

double类型提供的精度比float类型大一倍。

声明一个小数如:1.31,未指定类型则默认为Double型,float类型需要添加一个f 如1.31F。

 

1.4 decimal类型:

类型

名称

命名空间

说明

范围

布尔型

decima

System.Decimal

128位高精度十进制数表示法

±1.0 * 10e-28至±7.9*10e28

decimal类型用于比较精确的数学计算,比如财务计算,如果指定decima类型,需要在数字后面上M,如:1.31M

 

1.5字符类型

 

类型

名称

命名空间

说明

字符类型

char

System.Char

表示一个16为位的(Unicode)字符

声明一个char类型的变量时需要用单括号括起来,如’A’

如果字符是用双括号括起来 “A”则认为是字符串(string)变量

 

2.引用类型

object 和 string

类型

名称

命名空间

说明

Object类型

object

System.Char

所有类型的基类

字符串类型

string

System.String

字符串

object为所有类型的一个基类,所有的类型都隐式的从object中派生。

对于string可能会有点疑惑为什么string是一个引用类型,而不是值类型呢?因为string类型是一个不可变的类型,将会在后面的章节会讲到。

 

 

 

C#基础知识-数据类型(一)