Huh that's ironic今日私は周りを遊んでいて、Int64.MaxValueを何らかの方法で増やすことができて、Int64.MaxValueがInt64ではなくLongであることを知りました。なぜInt64.MaxValueがLongを返すのですか?
なぜ私はInt64 myInt = Int64.MaxValue;
のように私がmyIntがIntになるか、Longになるかどうかを意味するのですか?Int64
の代わりにLongをこのフィールドに格納する目的は何ですか?
Huh that's ironic今日私は周りを遊んでいて、Int64.MaxValueを何らかの方法で増やすことができて、Int64.MaxValueがInt64ではなくLongであることを知りました。なぜInt64.MaxValueがLongを返すのですか?
なぜ私はInt64 myInt = Int64.MaxValue;
のように私がmyIntがIntになるか、Longになるかどうかを意味するのですか?Int64
の代わりにLongをこのフィールドに格納する目的は何ですか?
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
、およびshort
にエイリアスされInt64
、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を持つ他のタイプ)は制限されませんが、それはそのタイプの大きさの指標です。 –