分享
 
 
 

.NET中的数据类型的一些变化

王朝c#·作者佚名  2006-01-31
窄屏简体版  字體: |||超大  

今天在做一个关于IC卡读写的程序,用到了一个IC卡读写器,有一个配套的dll动态库和一些库函数的说明,但是调试的时候总是会遇到一些奇怪的现象。VB6的示例中可以的操作,在我的程序中就会出现“未将对象引用设置到对象的实例”等等错误。折腾了半天也没有什么进展。后来用.NET的升级向导将那个VB6的实力程序升级,发现模块中函数的声明有一些变化。

VB6中声明:

Declare Function srd_45d041 Lib "mwic_32.dll" (ByVal icdev As Long, ByVal page As Integer, ByVal offset As Integer, ByVal le As Long, ByVal data_buffer$) As Integer

升级后.NET的声明:

Declare Function srd_45d041 Lib "mwic_32.dll" (ByVal icdev As Integer, ByVal page As Short, ByVal offset As Short, ByVal le As Integer, ByVal data_buffer As String) As Short

VB6中Long类型在.NET中变成了Integer,而Integer变成了Short。就这么一点小小的问题搞得我郁闷了半天。把程序调试通过以后,我查了一下MSDN Library,发现.NET的数据类型和VB6的存在一些变化。具体的可以看下面这两张表。

表1 VB6中的数据类型

数据类型

存储空间大小

范围

Byte

1 个字节

0 到 255

Boolean

2 个字节

True 或 False

Integer

2 个字节

-32,768 到 32,767

Long

(长整型)

4 个字节

-2,147,483,648 到 2,147,483,647

Single

(单精度浮点型)

4 个字节

负数时从 -3.402823E38 到 -1.401298E-45;正数时从 1.401298E-45 到 3.402823E38

Double

(双精度浮点型)

8 个字节

负数时从 -1.79769313486232E308 到

-4.94065645841247E-324;正数时从4.94065645841247E-324 到 1.79769313486232E308

Currency

(变比整型)

8 个字节

从 -922,337,203,685,477.5808 到 922,337,203,685,477.5807

Decimal

14 个字节

没有小数点时为 +/-79,228,162,514,264,337,593,543,950,335,而小数点右边有 28 位数时为 +/-7.9228162514264337593543950335;最小的非零值为 +/-0.0000000000000000000000000001

Date

8 个字节

100 年 1 月 1 日 到 9999 年 12 月 31 日

Object

4 个字节

任何 Object 引用

String

(变长)

10 字节加字符串长度

0 到大约 20 亿

String

(定长)

字符串长度

1 到大约 65,400

Variant

(数字)

16 个字节

任何数字值,最大可达 Double 的范围

Variant

(字符)

22 个字节加字符串长度

与变长 String 有相同的范围

用户自定义

(利用 Type)

所有元素所需数目

每个元素的范围与它本身的数据类型的范围相同。

表2 VB.NET中的数据类型

Visual Basic 类型

公共语言运行库类型结构

名义存储分配

取值范围

Boolean

System.Boolean

2 个字节

True 或 False

Byte

System.Byte

1 个字节

0 到 255(无符号)。

Char

System.Char

2 个字节

0 到 65535(无符号)。

Date

System.DateTime

8 个字节

0001 年 1 月 1 日凌晨 0:00:00 到 9999 年 12 月 31 日晚上 11:59:59。

Decimal

System.Decimal

16 个字节

0 到 +/-79,228,162,514,264,337,593,543,950,335 之间不带小数点的数;

0 到 +/-7.9228162514264337593543950335 之间带 28 位小数的数;最小非零数为

+/-0.0000000000000000000000000001 (+/-1E-28)。

Double

(双精度浮点型)

System.Double

8 个字节

负值取值范围为 -1.79769313486231570E+308 到 -4.94065645841246544E-324;正值取值范围为 4.94065645841246544E-324 到 1.79769313486231570E+308。

Integer

System.Int32

4 个字节

-2,147,483,648 到 2,147,483,647。

Long

(长整型)

System.Int64

8 个字节

-9,223,372,036,854,775,808 到 9,223,372,036,854,775,807。

Short

System.Int16

2 个字节

-32,768 到 32,767。

Object

System.Object(类)

4 个字节

任何类型都可以存储在 Object 类型的变量中。

Single

(单精度浮点型)

System.Single

4 个字节

负值取值范围为 -3.4028235E+38 到 -1.401298E-45;正值取值范围为 1.401298E-45 到 3.4028235E+38。

String

(变长)

System.String(类)

取决于实现平台

0 到大约 20 亿个 Unicode 字符。

用户定义的类型

(结构)

(从System.ValueType继承)

取决于实现平台

结构中的每个成员都有由自身数据类型决定的取值范围,并与其他成员的取值范围无关。

从两张表中可以清楚地看到VB6中的Integer类型是2个字节长度的,Long是4个字节长度的。在.NET中Interger变成了4个字节,Long是8个字节。多了一个Short类型,是2个字节的。

数据类型的字长不一样导致了调用库函数时数据类型转化的冲突,所以也就出现了很多奇怪的问题,不过现在问题顺利解决,希望这些经验能对.NET的初学者有一些帮助。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有