Однако в этом случае код не будет скомпилирован, так как явно вызывать внутренний метод MSIL недопустимо.
Ответ на наш вопрос — как компилятор позволяет использовать стандартный синтаксис
объект.поле
для вызова метода? — в том, что при разборе синтаксиса свойства на С# компилятор на самом деле генерирует для нас соответствующие методы-получатели и установщики, поэтому в случае свойства
Address.ZipCode
компилятор генерирует MSIL, содержащий методы
get_ZipCode
и
setJZipCode.
А теперь посмотрим на сгенерированный метод-установщик. В классе
Address
вы видели следующее: