看板 C_Sharp 關於我們 聯絡資訊
為了讓你的程式在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)