6

ソースコードInt32で使用するintのはなぜですか? C# で等しくない? では、元のソース コードは何ですか? よくわかりません..Int32intint

[Serializable]
[System.Runtime.InteropServices.StructLayout(LayoutKind.Sequential)] 
[System.Runtime.InteropServices.ComVisible(true)]
#if GENERICS_WORK
    public struct Int32 : IComparable, IFormattable, IConvertible
        , IComparable<Int32>, IEquatable<Int32>
///     , IArithmetic<Int32>
#else
    public struct Int32 : IComparable, IFormattable, IConvertible
#endif
    {
        internal int m_value; // Here????

        public const int MaxValue = 0x7fffffff;
        public const int MinValue = unchecked((int)0x80000000);

        ...
    }

と の間にも同じ問題がBooleanありboolます。

4

1 に答える 1

7

intなどは、それぞれや などboolの組み込み型の単純なエイリアスです。これらは省略形なので、使用するのが理にかなっています。独自の定義でも。Int32Boolean

エイリアスはコンパイラに組み込まれているため、アクセス可能Int32になる前にコンパイルする必要があるという「鶏が先か卵が先か」という状況はありませんint。の「オリジナルソースコード」はありませんint。「ソース」はInt32、CLR に組み込まれた機能 (プリミティブを処理するため) とフレームワーク (これらのプリミティブを操作するための機能を定義するため) の間で共有されます。重複した質問に対するこの回答が説明しているように、のソースInt32は型自体の有効な定義ではありません。これは CLR に組み込まれています。intそのため、コンパイラは、型に機能を持たせるために、そのファイル内での通常の違法な使用をごまかすInt32必要があります。

于 2015-06-08T10:55:32.290 に答える