嗯這就是諷刺,雖然在今天玩耍,我想知道如果可以在某種方式增加Int64.MaxValue,並剛剛創建Int64.MaxValue不是一個Int64,而是一個長。爲什麼Int64.MaxValue返回Long?
爲什麼這是否意味着如果我像Int64 myInt = Int64.MaxValue;
那樣存儲比myInt仍然是一個Int或它將變成一個Long,那麼在這個字段存儲一個Long而不是Int64
的目的是什麼。
嗯這就是諷刺,雖然在今天玩耍,我想知道如果可以在某種方式增加Int64.MaxValue,並剛剛創建Int64.MaxValue不是一個Int64,而是一個長。爲什麼Int64.MaxValue返回Long?
爲什麼這是否意味着如果我像Int64 myInt = Int64.MaxValue;
那樣存儲比myInt仍然是一個Int或它將變成一個Long,那麼在這個字段存儲一個Long而不是Int64
的目的是什麼。
因爲Int64和long是相同的類型。
Int64 = long
Int32 = int
Int16 = short
long
是Int64
參考的同義詞:http://msdn.microsoft.com/en-us/library/ctetwysk(v=VS.100).aspx
long
僅僅是Int64
的別名。見here。
的Int64是一個長期的:
Type t1 = typeof(Int64);
Type t2 = typeof(long);
bool same = t1.Equals(t2); // true
退房MSDN:
有Int16
,Int32
,並且Int64
被混淆爲short
,int
和long
分別。請注意,數字是用於存儲該值的位數。
從語言規範:
簡單類型的成員直接對應於由簡單類型別名的結構類型的成員:
•的
long
成員是的成員System.Int64
結構。
您可以在§3.4.2中看到其他別名。
而且從4.1.4:
C#提供了一組預定義結構類型稱爲簡單類型。簡單類型通過保留字標識,但這些保留字只是System命名空間中預定義結構類型的別名,如下表所述。
Reserved word Aliased type
long System.Int64
+1是第一個引用C#規範的人。 – vcsjones
注意:你不能增加或減少MaxValue。它不會限制Int64(或任何其他具有MaxValue的類型),它更多地表明該類型可以有多大。 –