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

        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类型适合于表示轻量级的对象。效率相对较高。

转载于:https://www.cnblogs.com/wigruky/archive/2006/04/25/384101.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值