В .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 ссылкой на себя? Итак, как нам избежать кругового определения?