2011-11-02 70 views
5

嗯這就是諷刺,雖然在今天玩耍,我想知道如果可以在某種方式增加Int64.MaxValue,並剛剛創建Int64.MaxValue不是一個Int64,而是一個長。爲什麼Int64.MaxValue返回Long?

爲什麼這是否意味着如果我像Int64 myInt = Int64.MaxValue;那樣存儲比myInt仍然是一個Int或它將變成一個Long,那麼在這個字段存儲一個Long而不是Int64的目的是什麼。

+1

注意:你不能增加或減少MaxValue。它不會限制Int64(或任何其他具有MaxValue的類型),它更多地表明該類型可以有多大。 –

回答

16

因爲Int64和long是相同的類型。

Int64 = long  
Int32 = int  
Int16 = short 
3

long僅僅是Int64的別名。見here

0

Int16Int32,並且Int64被混淆爲shortintlong分別。請注意,數字是用於存儲該值的位數。

3

從語言規範:

簡單類型的成員直接對應於由簡單類型別名的結構類型的成員:

•的long成員是的成員System.Int64結構。

您可以在§3.4.2中看到其他別名。

而且從4.1.4:

C#提供了一組預定義結構類型稱爲簡單類型。簡單類型通過保留字標識,但這些保留字只是System命名空間中預定義結構類型的別名,如下表所述。

Reserved word Aliased type 
long   System.Int64 
+0

+1是第一個引用C#規範的人。 – vcsjones