Выражение - это последовательность операций и операндов. Данный раздел определяет синтаксис выражений, порядок вычисления операций и операндов, а также значение выражений.
Выражение может быть классифицировано одним из следующих образов:
Значение. Каждое значение имеет связанный с ним тип.
Переменная. Каждая переменная имеет связанный с ней тип, а именно тип указанный при определении переменной.
Пространство имен. Выражение, классифицированное данным образом, может появляться только в левой части доступа к члену. В любом другом контексте оно вызывает ошибку компиляции.
Тип. Выражение, классифицированное данным образом, может появляться только в левой части доступа к члену, либо как операнд в операциях Is и As. В любом другом контексте оно вызывает ошибку компиляции.
Группа методов, которая получается в результате процесса поиска члена. Группа методов может иметь ассоциированное с ней экземплярное выражении. При вызове экземплярного метода результат вычисления экземплярного выражения становится экземпляром представляемым как Self. Группу методов допускается использовать только в операции вызова, либо операции создания делегата, где она также может быть неявно преобразована к совместимому типу-делегату. Его использование в любом другом контексте вызывает ошибку компиляции.
Доступ к свойству. Каждое выражение, классифицированное как доступ к свойству, имеет связанный с ним тип, а именно тип свойства. Более того, такое выражение может иметь ассоциированные с ним перечень аргументов и экземплярное выражение. При вызове метода доступа свойства результат вычисления экземплярного выражения становится экземпляром представляемым как Self, а вычисленные значения перечня аргументов (при наличии такового) образуют параметры вызова.
Доступ к событию. Каждое выражение, классифицированное как доступ к событию, имеет связанный с ним тип, а именно тип события (делегат). Более того, такое выражение может иметь ассоциированное с ним экземплярное выражение. Выражение, классифицированное данным образом, может появляться только в левой части оператора присваивания. В любом другом контексте оно вызывает ошибку компиляции.
Пустое. Данная ситуация возникает когда выражение является вызовом метода не имеющего возвращаемого значения. Выражения данного вида допустимо использовать только в контексте оператора вызова.
Конечный результат выражения никогда не является пространством имен, типом, группой методов или доступом к событию. Данные категории выражений являются лишь промежуточными конструкциями допустимыми в определенных контекстах.
Выражение доступа к свойству всегда переквалифицируется как значение путем вызова метода доступа. Необходимый метод доступа определяется контекстом в котором используется свойство. Если использование производится в контексте оператора присваивания, то вызывается метод установки значения свойства. В противном случае вызывается метод получения значения свойства.
Дополнительная информация представлена в следующих подразделах: