C# 数据类型

   C#中数据类型可以分为值类型(也称为数值类型)引用类型和指针类型


  数值类型包括 结构类型(Struct Types)枚举类型(Enum Type)

  结构类型可以分为:

1、数值类型。数值类型可以分为:

   (1)    整数类型。整数类型可以分为

①  无符号型: byte,ushort,uint和ulong;

无符号型说明如下:

●byte类型:大小为1字节,取值范围从0到255。

●ushort类型:大小为2字节,取值范围从0到65,535.

●unit类型:大小为4字节,取值范围从0到4,294,967,295。

●ulong类型:大小为8字节,取值范围从0到18,446,744,073,709,551,615.

②  有符号型:sbyte,short,int和long;

有符号型说明如下:

●sbyte类型:大小为1字节,取值范围从-128到127。

●short类型:大小为2字节,取值范围从-32,768到32,767.

●nit类型:大小为4字节,取值范围从-2,147,483,648到2,147,483,647。

●long类型:大小为8字节,取值范围从-9,233,372,036,854,775,808到9,223,372,036,854,775,807.

③  Char:Char在C#中表示16位Unicode字符。

   (2)    浮点数类型。浮点数类型可以分为:

① 单精度浮点(float)类型;

●单精度浮点类型大小为4个字节。取值范围为1.5×10的负45次方到3.4×10的38次方,有7位数字位精度。

②双精度浮点(double)类型;

●双精度浮点类型大小为8个字节。取值范围为5.0×10的负324次方到1.7×10的308次方,有15到16位数字位精度。

浮点类型支持以下几种数值:

●正零和负零。

●正无穷大。例如:5.0/0.0会产生正无穷大值。

●负无穷大。例如:-5.0/0.0会产生正无穷大值。

●NaN(Not a Number):NaN是非数字数据,表示无效的浮点数操作。例如0除以0就会得到NaN值。如果浮点数的操作是无效的,操作的结果就会转换为NaN。如果一个或所有浮点操作的操作数都是NaN,那么操作的结果就会变为NaN。

如果二元运算符的一个操作数是浮点类型,那么其他操作数必须是整数类型或者浮点数类型,并且操作按下面规则进行:

●如果一个操作数是double类型,那么其他操作符就必须转换为double,操作就要按照double类型的范围和精度来进行,而且计算的结果也是double类型。

●在没有double类型时,如果一个操作数是float类型,那么其他操作数就要转换为float,操作就要按照float类型的范围和精度来进行,而且计算的结果也是float类型。

对于float类型的数值,末尾需要使用f说明该数值为float类型;对于double类型的数值,末尾需要使用d说明该数值为double类型;如果没有这些说明,系统会把这些小数作为double类型处理。下面是浮点类型的使用示例。

float a  = 5.0f;
double b = 5.0d;
double c = a + b;

   (3)    小数  。

小数(decimal)类型在所有类型数值类型中精度是最高的,它有128位。一般做精度要求高的金融和货币的计算。取值范围为1.0×10的负28次方到7.9×10的28次方,有18到29位的有效数字。decimal类型的赋值和定义如下所示:

decimal m = 8.8m;
代码说明:末尾m代表该数值为decimal类型,如果没有m则会被编译器默认为double类型的8.8。

decimal类型不支持有符号零、无穷大和NaN。

注意:一般不要把decimal类型和浮点类型之间进行类型转换(无论是显示还是隐式的),否则会产生异常并且会有精度的损失。

2、布尔类型

布尔类型(bool)表示布尔逻辑值,布尔类型的值有两个:true和false。true表示逻辑真,false表示逻辑假。可以直接将true或false直接赋给一个布尔变量,或将一个逻辑判断语句的结果赋给布尔类型的变量,如下面的代码所示。

bool b = false;
bool isSmall = 500 > 700;

3、用户定义的结构。

在不会引起歧义的情况下,用户自定义结构常常简称为结构。结构类型通常是一组相关的信息组合成的单一实体,其中的每个信息都为它的一个成员,结构类型可以用来声明构造函数、常数、字段、方法 、属性、索引、操作符和嵌套类型。结构类型通常用于表示较为简单或者较少的数据,其实际应用的意义在于使用结构类型可以节省使用类的内存的占用,因为结构的类型没有如同类对象所需的大量额外的引用。下面代码定义了一个简单数据结构Animal。

struct Animal{
    public uint id;
    public String name;
    public string gender;
    public uint age;
}

代码说明:第1行使用关键字struct指明这里将要定义一个用户自定义结构,对于一个记录动物信息的结构,编号、名称、性别、年龄是必不可少的,这里在第2-5行定义了这些信息。在使用这个结构时,可以根据需要增加相关的信息。

 

  枚举类型。

枚举类型(enum)是由一组特定的常量构成一种数据结构,系统把相同类型、表达固定含义的一组数据作为一个集合放到一起形成新的数据类型,比如一年分为十二个月可以放到一起作为新的数据类型来描述月份,代码如下所示。

enum Month{
     January,      //一月份
     February,     //二月份
     March,        //三月份
     April,         //四月份
     May,           //五月份
     June,          //六月份
     July,          //七月份
     August,        //八月份
     September,     //九月份
     October,       // 十月份
     November,      //十一月份
     December       //十二月份
 };
代码说明:第1行中enum是定义枚举类型的关键字,Month是枚举类型的名字,{}中的是枚举元素,第2-13行定义了枚举元素,用逗号分隔。这样一年十二个月份的集合就构成了一个枚举类型,它们都是枚举元素的构成元素。

枚举元素实际上都是整数类型,缺省时第一个枚举元素值为0,以后每个元素都递增1,开发者也可以自定义首元素的值,甚至每个元素的值,例如下面的代码就自定义了元素的值。

  enum Month{
     January=1,      //一月份
     February=2,       //二月份
     March=3,        //三月份
     April=4,         //四月份
     May=5,           //五月份
     June=6,          //六月份
     July=7,          //七月份
     August=8,        //八月份
     September=9,     //九月份
     October=10,       // 十月份
     November=11,      //十一月份
     December=12       //十二月份
 };


   引用类型包含 类类型(Class Types)、对象类型(Object Type)。字符串类型(String Types)、数组类型(Array Types)、接口类型(Interface Types)和代理类型(Delegate Types)。

  1、类类型 http://blog.csdn.net/songling418/article/details/13078175

   2、对象类型 http://blog.csdn.net/songling418/article/details/13613565

  3、字符串类型 http://blog.csdn.net/songling418/article/details/13613615

  4、数组类型 http://blog.csdn.net/songling418/article/details/13614659

  5、接口类型 http://blog.csdn.net/songling418/article/details/13614673

  6、代表类型 http://blog.csdn.net/songling418/article/details/13614695


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值