没有合适的资源?快使用搜索试试~ 我知道了~
关于C#的类型转换的描述,对各数据类型的相互转换进行归类统一
资源推荐
资源详情
资源评论
出来也有些日子了,最近由于编程的需要,对 的类型转换做了一些研
究,其内容涉及 的装箱拆箱别名、数值类型间相互转换、字符的
码和 码、数值字符串和数值之间的转换、字符串和字符数组字节数
组之间的转换、各种数值类型和字节数组之间的转换、十六进制数输出以及日
期型数据的一些转换处 理,在这里与大家分享——
1. 装箱、拆箱还是别名
许多 的书上都有介绍 是一个装箱的过程,反之则
是拆箱的过程。许多其它变量类型也是如此,如:,
等。对于一般的程序员来说,大可不必去了解这一过程,因为这些装
箱和拆箱的动作都是可以自动完成的,不需要写代码进行干预。但是我们需要
记住这些类型之间 的关系,所以,我们使用“别名”来记忆它们之间的关系。
是全面向对象的语言,比 !"#"的面向对象都还彻底——它把简单数据类
型通过默认的装箱动作封装成了类。、、 等就是相应的类名,
而那些我们熟悉的、简单易记的名称,如 、、等,我们就可以
把它称作是 、、 等类型的别名。
那么除了这三种类型之外,还有哪些类有“别名”呢?常用的有如下一些:
$%&'"(布尔型,其值为 )或者 *"+
"%&"(字符型,占有两个字节,表示 个 字符+
$%%&'%(字节型,占 字节,表示 ,位正整数,范围 -.
//+
$%%&'%(带符号字节型,占 字节,表示 ,位整数,范围
,.0+
)%&(无符号短整型,占 字节,表示 位正整数,
范围 -./1//+
)%&(无符号整型,占 字节,表示 位正整数,范围
-. 12 12012/+
)%& (无符号长整型,占 ,字节,表示 位正整数,
范围 -.大约 -的 -次方+
%&(短整型,占 字节,表示 位整数,范围
10,.100+
%&(整型,占 字节,表示 位整数,范围
1 01 ,1 ,到 1 01 ,1 0+
%& (长整型,占 ,字节,表示 位整数,范围大约
(-的 2+次方 到 -的 2次方+
3"%&(单精度浮点型,占 个字节+
)$%&4)$(双精度浮点型,占 ,个字节+
我们可以用下列代码做一个实验:
Code:
C#代码
查看源代码
打印
-private void "(+5
-6'6是一个文本框,类型为
%&789&6'6
-设计中已经将其 :)属性设置为 )
- byte ";<char $;="=<short ;<
-/int ;<long ;<uint *; <bool ;true<
-this6'66;>><
-0this6'6??6(>$%> @"A%?(+9)"&@
>B>+<
-,this6'6??6(>"> @$A%?(+9)"&@
>B>+<
-2this6'6??6(>> @A%?(+9)"&@
>B>+<
-this6'6??6(>> @A%?(+9)"&@>B
>+<
this6'6??6(>> @A%?(+9)"&@
>B>+<
this6'6??6(>)> @*A%?(+9)"&@>B
>+<
this6'6??6(>$> @A%?(+9)"&@
>B>+<
C
在窗体中新建一个按钮,并在它的单击事件中调用该 "(+函数,
我们将看到运行结果如下:
$%%&'%
"%&"
%&
%&
%&
)%&
$%&'"
这足以说明各别名对应的类!
2. 数值类型之间的相互转换
这里所说的数值类型包括 $%11113"1)$等,根
据这个排列顺序,各种类型的值依次可以向后自动进行转换。举个例来说,把
一个 型的数据赋值给一个 型的变量,值会自动行转换成
型值,再赋给 型变量。如下例:
Code:
C#代码
查看源代码
打印
-private void '"(+5
-byte ";<short $;"<int ;$<
-long ;<oat ;<double *;<
- this6'66;>><
-/this6'6??6(>$%";> @"(+@>B>+<
-this6'6??6(>$;> @$(+@>B>+<
-0this6'6??6(>;> @(+@>B>+<
-,this6'6??6(>;> @(+@>B>+<
-2this6'6??6(>3";> @(+@>B>+<
-this6'6??6(>)$*;> @*(+@>B>+<
C
译顺利通过,运行结果是各变量的值均为 ;当然,它们的类型分别还是
%&'%型……%&4)$型。现在我们来试试,如果把赋值的顺
序反过来会怎么样呢?在 '"(+函数中追加如下语句:
Code:
C#代码
查看源代码
打印
int ;<
short ;<
this6'6??6(>;> @(+@>B>+<
结果编译报错:
Quote:
ADBEFBG)"B#B9&(,+D无法将类型“H隐式转换
为“H
其中,9&的 ,行即 ;所在行。
这个时候,如果我们坚持要进行转换,就应该使用强制类型转换,这在
语言中常有提及,就是使用“(类型名+变量名”形式的语句来对数据进行强制转
换。如上例修改如下:
Code:
C#代码
查看源代码
打印
short ;<
剩余22页未读,继续阅读
资源评论
richardcrick
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功