作者petrushka (不放过自己)
看板C_Sharp
标题Re: [问题] 数值型态宣告
时间Fri Jul 23 01:43:13 2010
为了让你的程式在32bit环境与64bit环境执行时, 能够都产生一样的行为,
.NET让在不同平台上的CLR都遵行CLI与Common Language Type System的规则。
只有很少数的例外需要注意,这部份你可以参考下面的网页:
1.
http://tinyurl.com/bdvl8w
2.
http://msdn.microsoft.com/en-us/library/ms973190.aspx
再来,不管是在32bit或64bit环境,int都等同於Int32,这是ECMA标准。
至於其他的如float, double等型别,在32bit与64bit环境都是一样大小。
那麽用int和Int32哪个好?
回答是:看你的考量,看你怎麽想,看你的喜好。
有些人觉得使用Int32,可以让其他阅读程式码的人,能够更明白在该处的意义与大小。
因为,在其他语言中,int在32bit与64bit环境代表的可能是不同长度。
所以对於从其他语言刚转换到.NET来,他可能会有所误解,会以为32bit与64bit环境是
不同的,从而多花一些功夫去做处理。
有些人觉得使用int,因为它是大部份C like语言所采用的关键字,看起来比较亲切,
也容易了解。
而且在其他语言中,不一定也有Int32这样的定义,所以对於刚转换到.NET的开发者,
他可能不明白int跟Int32是否有不同,然後又多虑了。
所以呢,我觉得使用int很自然,因为很多C like语言都有的关键字,易了解。
至於Int32,大概是因为想凸显某处程式处理的大小限制而采用。
只要最後了解.NET,你就晓得它们都是一样的,剩下的,
也许就是原始码阅读上的意义了。
※ 引述《JoeHorn (每天都在公司玩OLG)》之铭言:
: 就我的认知。
: short 跟 System.Int16 是相同的;
: int 跟 System.Int32 是相同的;
: long 跟 System.Int64 是相同的;
: float 跟 System.Single 是相同的;
: double 跟 System.Double 是相同的。
: 我都是使用後者,因为我怕 short/int/long/float/double 这类的宣告,
: 在 32-bit OS 跟 64-bit OS 值域会有差异。
: 可是.. 刚才在网路上,我看到这份文件:
: http://weblogs.asp.net/lhunt/pages/CSharp-Coding-Standards-document.aspx
: PDF 档里面的这段让我迷惑了:
: 1.4.3 Language Usage
: Code Style
: Native Data Types Use built-in C# native data types vs .NET CTS types.
: (Use int NOT Int32)
: 小弟接触 C# 时间并不算久,大概是以下两个问题请教板上前辈们:
: 1. 就以 int/Int32 而言,使用哪一种作变数型态宣告会比较好呢?
: 原因是?
: 2. short/int/long/float/double 在 32-bit OS 跟 64-bit OS 的值域不同吗?
: 以上,先谢谢大家的指教。 <(_ _)>
--
对於已经无法拥有的
唯一能做的是
不要忘记
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.41.71.27
※ 编辑: petrushka 来自: 114.41.71.27 (07/23 01:46)