В .net, AIUI int
является просто синтаксическим сахаром для System.Int32
, который является struct
.
csharp> typeof(System.Int32).IsPrimitive
true
csharp> typeof(System.Int32).Equals(typeof(int))
true
Я вижу в источнике:
https://github.com/mono/mono/blob/master/mcs/class/corlib/System/Int32.cs http://referencesource.microsoft.com/#mscorlib/system/int32.cs
То, что System.Int32
определяется только ссылкой на элемент m_value
, который сам является int
- как это работает? Разумеется, мы определяем int
ссылкой на себя? Итак, как нам избежать кругового определения?