楽しみのためだけに、.NET Framework Reference Sourceの .NET ソース コードを参照してきました。そして、わからないものを発見。
タイプの C# コードを含む Int32.csファイルがありますInt32
。そして、どういうわけかそれは私には奇妙に思えます。C# コンパイラはどのようにInt32
型のコードをコンパイルしますか?
public struct Int32: IComparable, IFormattable, IConvertible {
internal int m_value;
// ...
}
しかし、これは C# では違法ではありませんか? int
が の単なるエイリアスで ある場合、エラー CS0523Int32
でコンパイルに失敗するはずです。
タイプ 'struct1' の構造体メンバー 'struct2 field' により、構造体レイアウトでサイクルが発生します。
コンパイラには魔法がありますか、それとも完全に軌道から外れていますか?