• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#学习笔记之类型篇

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
 

一、基元类型:

1、基元类型:编译器直接支持的数据类型称为基元类型。

C#中的基元类型:sbyte(8)byte(8)short(16)ushort(16)int(32)uint(32)long(64)ulong(64)char(16)float(32)double(64)bool(True or False)decimal(128)object(基类型)string(字符数组)

2CheckedUnchecked基元类型操作:(针对算术溢出)

    Byte b = 100;
    b 
=(Byte) (b + 200)    // b的值将为44(溢出)Byte(0¬——255)

注意:1CLR只在32位和64位值上进行算术运算。所以,b200首先会被转换为32的值,然后相加。C#不会隐式将高位从低位转型,所以第二行代码要显式进行Byte转型操作。

2Checked操作符和语句只影响加、减、乘、以及转换IL指令产生的版本;在checked操作符或语句内调用一个方法不会对该方法产生任何影响。  

// Checked操作符:
B=checked (( Byte ) ( b +200));   // 抛出OverflowException错误

// Checked语句:

3、  使用原则:

如果希望在出现溢出时抛出异常,我们就应该显式使用checked.

如果不希望有异常抛出(即使出现了溢出),就应该显式使用unchecked.

二、引用类型与值类型:

1、引用类型:

a、内存必须从托管堆中分配。

b、每个在托管堆中分配的对象都有一些与之关联的额外附加成员必须被初始化。

c、从托管堆中分配对象可能会导致执行垃圾收集。

dSystem.Object类、Sytem.Exception类、System.IO.FileStream类、System.Random类等等

2、值类型:值类型实例通常分配在线程的堆栈上,不受垃圾收集器的控制,所有值类型都必须继承自System.ValueType类型.

System.Boolean结构、System.Decimal结构、System.TimeSpan结构、System.DayOfWeek枚举、System.IO.FileAttributes枚举、以及System.Drawing.FontStyle枚举都是值类型。

三、装箱与拆箱(针对值类型,引用类型总是装箱形式)

Static void Main()

注意:装箱与拆箱/拷贝操作会从速度和内在两方面损伤应用程序的性能。因此我们应该清楚编译器会在何时自动产生执行这些操作的指令,并使我们编写的代码尽可能地减少导致这种情况的机会。

明白装箱与拆箱机制对于我们编写正确的代码,使系统性能优化会起到重要的作用。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#根据句柄改变窗体控件值发布时间:2022-07-14
下一篇:
W3C 、HTML 、CSS 发展介绍发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap