您的位置:首页 > 编程语言 > ASP

[学习笔记]Asp.net(C#)菜鸟进级系列之值类型

2006-04-25 01:25 561 查看
C#中数据类型包括Value Type(值类型)和Reference Type(引用类型),除此之外还有用在非安全代码中的Pointer Type(指针类型)。
值类型的变量直接包括它们的数据。
引用类型的变量则仅仅是储存它们对数据的引用。可以使用引用对象让两个对象同时指向一个对象,然后操作其中的一个对象,则令一个对象也同步操作。而值对象则不能,值对象则是把对象的副本copy到该对象的存储区。
C#中的对象
Value Type:
bool,char,byte,sbyte,short,ushort,int,uint,long,ulong,float,double,decimal,enum,struct
Reference Type
class,delegate,interface,object,string
说明:c#中常用来表示的数据对象名(如上面所示),其实都是一种简单类型,每一个简单类型都对应相应的dotnet系统类型,它只不过是其相对应系统类型的别名(一种更方便的简单表示而已)。
下面是常用的简单类型及其对应的系统类型。

简单类型与系统类型对应 bool----------System.Boolen char----------System.Char
byte----------System.Byte sbyte----------System.Sbyte
short----------System.Int16 ushort----------System.Uint16
int----------System.Int32 uint----------System.Uint32
long----------System.Int64 ulong----------System.Uint64
float----------System.Single double----------System.Double
decial----------System.Decimal

一、值类型
结构:
结构类型
数字类型
整数类型
浮点数类型
小数类型
布尔类型
枚举类型
说明:在使用时一定要注意类型的匹配,特别是在作为函数方法的参数时更是要严格匹配参数类型,即使可隐式转换,也要强制转换。

结构类型相关细节:
1、bool类型不能转换成其他类型(这与其它编程语言还是有区别的,不能和0.1转换)
2、char类型是用来声明双字节的Unicode字符,在c#中可以用多种形式表示char类型(字符字面值,十六进制转义序列,Unicode或整数值强制赋值)
如:

char mychar='x';//字符字面值
char mychar='\x0058';//十六进制表示
char mychar='\u0058';//unicode
char mychar=(char)88;//整数强制转换

3、byte、ubyte、short、ushort都可以直接用整数字面值赋值。赋值时自动检测是否匹配,不匹配则thorw Exeception,赋值时不能用表达式赋值(因为运算表达式只有在执行时才有计算结果,编译器不能检查出计算出的结果是否超出了要赋予的数据类型)。
如:
short a=5;
short b=34;
short c=a+b;//error
short d=(short)(a+b);//right
注:整数字面值如果没有后缀来明确指出其类型时,它将默认按照顺序从int,uint,long,ulong中挑选出第一个和它类型能够匹配的数据类型作为其类型。如果加上后缀,则:加l或L,可能是long或ulong。加u或U,可能是uint或ulong。加ul,Ul,UL,uL,则为ulong类型。

4、浮点数据类型(float,double)
声明浮点数必须加后缀(f或F)来初始化,如:float myfloat=3.33f。因为实数字面值(所在表达式中出现的浮点数)默认是double,如不加后缀,则可能会引起精度降低或范围溢.。
double类型的后缀是d或D 。
5、小数类型(decimal)
后缀是m或M。
说明:所有的整数类型都可以隐式转换成decimal,而因为浮点数类型和decimal类型所表达的精度不同,所以要强制转换。
6 、数据长度
其实c#中的数字类型中的数据类型基本上都可以从其系统类型明可以看出。如:short的系统类型为System.Int16,说明它是16位(双字节)的。其它的就是byte是8位单字节的(0~255)。float用32位(4个字节)来存储浮点数,它也称为单精度浮点数,它的精度是7个有效数字。double是64位,以15~16个有效数字。小说类型decimal是128位,有28~29个有效数字,它主要用于金融和货币领域。
枚举类型相关细节:
1、enmu类型
枚举类型是一组命名常量集合,每一种枚举类型都有一种基本的类型,除char外所有的整数类型都可以作为枚举类型的基本类型。
格式:[attributes][modifiers]enum identifier [:base-type]{enumeator-list,……}
注:base-type的默认类型是int
2、struct类型
它包括构造函数、常数、域、方法、属性、索引、操作符和嵌套类型。
格式:[attributes] [modifiers] struct identifier [:interface] {……}
struct类型适合于表示轻量级的对象。效率相对较高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐