為了讓你的程式在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)