Просматривал исходный код .NET Справочного источника .NET Framework, просто для удовольствия. И нашел то, что я не понимаю.
Существует файл Int32.cs с кодом С# для типа Int32
. И почему-то это кажется мне странным. Как компилятор С# компилирует код для типа Int32
?
public struct Int32: IComparable, IFormattable, IConvertible {
internal int m_value;
// ...
}
Но не является ли это незаконным в С#? Если int
является только псевдонимом для Int32
, он не должен компилироваться с Ошибка CS0523:
Элемент struct struct 'struct2' типа 'struct1' вызывает цикл в структуре структуры.
Есть ли какая-то магия в компиляторе, или я полностью отключен?