Пространства имен(5) |
---|
единица_компиляции | = |
{using-директива}
{опр.имени}
|
using-директива | = |
using идентификатор
=
имя типа или пространства имен
;
| using
пространство имен ;
|
опр.имени | = |
опр.пространства имен |
опр.типа
|
опр.пространства имен | = |
namespace{идентификатор
.} идентификатор
{{using-директива}
{опр.имени} }
[;]
|
опр.типа | = |
опр.класса |
опр.структуры |
опр.интерфейса |
опр.перечисления |
опр.делегата
|
Классы(9) |
---|
опр.класса | = |
[атрибуты]
{мод.класса} class
идентификатор
[база класса] {
{опр.члена класса} } [;]
|
мод.класса | = | new | public | protected | internal | private | abstract | sealed
|
база класса | = |
:
тип класса |
: список типов интерфейсов
| :
тип класса
, список типов интерфейсов
|
список типов интерфейсов | = |
тип интерфейса
{ , тип интерфейса}
|
опр.члена класса | = |
опр.константы |
опр.поля |
опр.метода |
опр.свойства |
опр.события |
опр.индексатора |
опр.операции |
опр.конструктора |
опр.деструктора |
опр.статического конструктора |
опр.типа
|
опр.константы | = |
[атрибуты]
{мод.константы} const тип
определитель константы {,
определитель константы} ;
|
мод.константы | = | new | public | protected | internal | private
|
опр.поля | = |
[атрибуты]
{мод.поля} тип
определитель переменной
{, определитель переменной} ;
|
мод.поля | = | new | public | protected | internal | private | static | readonly
|
Методы (37)
|
---|
опр.метода | = |
[атрибуты]
{мод.метода}
тип возврата
имя члена
(
[список формальных параметров]
)
тело метода
|
мод.метода | = | new | public | protected | internal | private | static | virtual | override | abstract | extern
|
тип возврата | = | тип | void
|
имя члена | = | [тип интерфейса .] идентификатор
|
тело метода | = | блок | ;
|
список формальных параметров | = | фикс.параметры
| параметр-массив | фикс.параметры
, параметр-массив
|
фикс.параметры | = | фикс.параметр
{, фикс.параметр}
|
фикс.параметр | = | [атрибуты]
[мод.параметра] тип идентификатор
|
мод.параметра | = | ref | out
|
параметр-массив | = | [атрибуты] params тип массива идентификатор
|
опр.свойства | = | [атрибуты]
{мод.свойства} тип имя члена
{ определения аксессоров
}
|
определения аксессоров | = | [опр.get-аксессора]+[опр.set-аксессора]
|
мод.свойства | = | new | public | protected | internal | private | static | virtual | override | abstract
|
опр.get-аксессора | = | [атрибуты] get
тело аксессора
|
опр.set-аксессора | = | [атрибуты] set
тело аксессора
|
тело аксессора | = | блок | ;
|
опр.события | = | [атрибуты]
{мод.события} event тип поле или свойство
|
мод.события | = | new | public | protected | internal | private | static
|
поле или свойство | = | определитель переменной
{, определитель переменной} ;
| имя члена { определения аксессоров
}
|
опр.индексатора | = | [атрибуты]
{мод.индексатора} тип [тип интерфейса .]
this [ список формальных параметров
] { определения аксессоров
}
|
мод.индексатора | = |
new | public | protected | internal | private | virtual | override | abstract
|
опр.операции | = | [атрибуты]
мод.операции определитель операции
блок
|
мод.операции | = | public static | static public
|
определитель операции | = | определитель унарной операции |
определитель бинарной операции
| определитель операции приведения
|
определитель унарной операции | = | тип
operator
переопр.унарн.операция
( тип
идентификатор )
|
переопр.унарн.операция | = | + | - | ! | ~ | ++ | -- | true | false
|
определитель бинарной операции | = | тип
operator
переопр.бинарн.операция ( тип идентификатор , тип идентификатор )
|
переопр.бинарн.операция | = | + | - | * | / | % | & | | | ^ | << | >> | == | != | > | < | >= | <=
|
определитель операции приведения | = | [implicit | explicit]+ operator тип
( тип идентификатор )
|
опр.конструктора | = |
[атрибуты]
{мод.конструктора}
определитель конструктора блок
|
мод.конструктора | = | public | protected | internal | private
|
определитель конструктора | = |
идентификатор (
[список формальных параметров] )
[конструктор-инициализатор]
|
конструктор-инициализатор | = |
: [base | this] ( [список аргументов] )
|
опр.деструктора | = | [атрибуты] ~ идентификатор ( )
блок
|
опр.статического конструктора | = |
[атрибуты] static идентификатор ( )
блок
|
опр.структуры | = |
[атрибуты] {мод.структуры} struct идентификатор [: список типов интерфейсов]
{ {опр.члена класса} } [;]
|
мод.структуры | = |
new | public | protected | internal | private
|
Интерфейсы (8)
|
---|
опр.интерфейса | = |
[атрибуты]
{мод.интерфйса}interface идентификатор [: список типов интерфейсов]
[{
{опр.члена интерфейса} } ; ]
|
мод.интерфйса | = |
new | public | protected | internal | private
|
опр.члена интерфейса | = |
опр.метода интерфейса | опр.свойства интерфейса |
опр.события интерфейса | опр.свойства интерфейса
|
опр.метода интерфейса | = |
[атрибуты] [new] тип возврата идентификатор ( [список формальных параметров] )
;
|
опр.свойства интерфейса | = |
[атрибуты] [new] тип идентификатор { аксессоры интерфейса
}
|
аксессоры интерфейса | = |
[ [атрибуты] get ;
]+[ [атрибуты] set ;
]
|
опр.события интерфейса | = |
[атрибуты] [new] event
тип идентификатор ;
|
опр.свойства интерфейса | = |
[атрибуты] [new] тип
this
[ список формальных параметров ] {
аксессоры интерфейса }
|
Типы перечислений (5)
|
---|
опр.перечисления | = |
[атрибуты] {мод.перечисления}enum идентификатор [: несимвольный тип]
тело перечисления [;]
|
мод.перечисления | = |
new | public | protected | internal | private
|
несимвольный тип | = | sbyte | byte | short | ushort | int | uint | long | ulong
|
тело перечисления | = |
{ [опр.элемента {, опр.элемента}] }
|
опр.элемента | = |
[атрибуты] идентификатор [=
конст.выражение]
|
Делегаты (2)
|
---|
опр.делегата | = |
[атрибуты] [мод.делегата {,
мод.делегата}]
delegate тип идентификатор ( [список формальных параметров] )
;
|
мод.делегата | = |
new | public | protected | internal | private
|
Атрибуты (6)
|
---|
атрибуты | = |
[атрибут {,
атрибут}]
|
атрибут | = |
имя типа ( [позиционный список аргументов]+[именованный список аргументов]+[позиционный список аргументов , именованный список аргументов]
)
|
позиционный список аргументов | = | позиционный аргумент {,
позиционный аргумент}
|
позиционный аргумент | = | выражение
|
именованный список аргументов | = | именованный аргумент
{, именованный аргумент}
|
именованный аргумент | = |
идентификатор =
выражение
|
Типы (14)
|
---|
тип | = |
тип-значение
| тип-ссылка
|
тип-значение | = | имя типа | общий тип
| float | double | decimal | bool
|
общий тип | = | sbyte | byte | short | ushort | int | uint | long | ulong | char
|
тип-ссылка | = | тип класса
| тип интерфейса | тип массива
| тип делегата
|
тип класса | = | имя типа | object
| string
|
тип интерфейса | = | имя типа
|
тип массива | = | не тип массива
{[ {,} ]}+
|
не тип массива | = | тип
|
тип делегата | = | имя типа
|
переменная-ссылка | = | выражение
|
имя типа или пространства имен | = | идентификатор {.
идентификатор}
|
имя пространства имен | = |
имя типа или пространства имен
|
имя типа | = |
имя типа или пространства имен
|
идентификатор | = |
letter { character } | @keyword
|
Выражения (30)
|
---|
список аргументов | = | аргумент
{, аргумент}
|
аргумент | = | выражение
| [ref
| out] переменная-ссылка
|
первичное выражение | = |
literal
| идентификатор
| ( выражение
)
| первичное выражение .
идентификатор
| предопределеный тип
. идентификатор
| выражение-вызов
| первичное выражение [ выражение {,
выражение} ]
| this
| base .
идентификатор
| base [ выражение
{,
выражение} ]
| первичное выражение
[++
| --]+
| new-выражение
| typeof ( тип )
| sizeof ( тип )
| checked ( выражение )
| unchecked ( выражение )
|
предопределеный тип | = | bool
| byte | char | decimal | double |
float | int | long | object | sbyte | short | string | uint | ulong | ushort
|
выражение-вызов | = | первичное выражение (
[список аргументов] )
|
new-выражение | = | выражение создания объекта
| выражение создания массива | new тип делегата ( выражение
)
|
выражение создания объекта | = | new
тип ( [список аргументов] )
|
выражение создания массива | = | new
не тип массива [ выражение
{, выражение} ] {[ {,} ]}
[инициализатор массива] |
new тип массива
инициализатор массива
|
инициализатор массива | = |
{ {инициализатор переменной ,}
[инициализатор переменной]] }
|
унарное выражение | = | { + | -
| ! | ~ | *
| & | ++ | -- |
( тип ) }
первичное выражение
|
мультипл.выражение | = | унарное выражение
{ мультипл.операция унарное выражение
}
|
мультипл.операция | = | * | / | %
|
аддитив.выражение | = | мультипл.выражение
{аддитив.операция мультипл.выражение}
|
аддитив.операция | = | + | -
|
shift-выражение | = | аддитив.выражение
{shift-операция аддитив.выражение}
|
shift-операция | = | << | >>
|
выражение отношения | = | shift-выражение
{операция отношения shift-выражение} [ is тип-ссылка]
|
операция отношения | = | < | > | <= | >=
|
равенство-выражение | = | выражение отношения
{операция сравнения выражение отношения}
|
операция сравнения | = | == | !=
|
and-выражение | = | равенство-выражение { &
равенство-выражение}
|
искл.-или-выражение | = | and-выражение { ^
and-выражение}
|
вкл.-или-выражение | = | искл.-или-выражение { |
искл.-или-выражение}
|
условн.и-выражение | = | вкл.-или-выражение { && вкл.-или-выражение}
|
условн.или-выражение | = | условн.и-выражение
{ || условн.и-выражение}
|
присваивание | = | unary-expression операция присваивания
выражение
|
операция присваивания | = | = | += | -= | *= | /= | %= | &= | |= | ^= | <<= | >>=
|
выражение | = |
условн.или-выражение
[? выражение : выражение] | присваивание
|
конст.выражение | = | выражение
|
логическое выражение | = | выражение
|
Операторы (23)
|
---|
оператор | = |
помеченный оператор |
оператор-определение |
вставл.оператор
|
вставл.оператор | = |
блок
| [оператор-выражение]
;
| оператор выбора
| оператор цикла
| оператор перехода
| try-оператор
| check-оператор
| lock-оператор
| using-оператор
|
блок | = | { {оператор} }
|
помеченный оператор | = | идентификатор : оператор
|
оператор-определение | = | опр.локал.переменной ;
| опр.локал.константы ;
|
опр.локал.переменной | = | тип
определитель переменной {, определитель переменной}
|
определитель переменной | = |
идентификатор | идентификатор = инициализатор переменной
|
инициализатор переменной | = | выражение
| инициализатор массива
|
опр.локал.константы | = | const
тип определитель константы {,
определитель константы}
|
определитель константы | = | идентификатор =
конст.выражение
|
оператор-выражение | = |
выражение-вызов
| выражение создания объекта
| присваивание
| первичное выражение
[++
| --]+
|
[++
| --
]+
первичное выражение
|
оператор выбора | = |
if (
логическое выражение ) вставл.оператор [else вставл.оператор]
| switch ( выражение )
{ { секция переключателя } }
|
секция переключателя | = | { метка переключателя } {
оператор }
|
метка переключателя | = | case
конст.выражение :
| default :
|
оператор цикла | = |
while (
логическое выражение )
вставл.оператор
| do
вставл.оператор while (
логическое выражение ) ;
| for (
[for-инициализатор] ; [логическое выражение] ;
[for-итератор] )
вставл.оператор
| foreach ( тип идентификатор in выражение
) вставл.оператор
|
for-инициализатор | = | опр.локал.переменной |
оператор-выражение {, оператор-выражение
}
|
for-итератор | = | оператор-выражение
{, оператор-выражение
}
|
оператор перехода | = |
break ;
| continue ;
| return [ выражение] ;
| throw [ выражение] ;
| goto идентификатор ;
| goto case
конст.выражение ;
| goto default ;
|
try-оператор | = | try
блок {catch-clauses}+[finally
блок]
|
catch-clauses | = | catch
[( тип класса [идентификатор] )] блок
|
check-оператор | = | [checked
| unchecked ]+ блок
|
lock-оператор | = | lock (
выражение ) вставл.оператор
|
using-оператор | = |
using
( опр.локал.переменной {
catch ( [тип класса идентификатор] ) блок } выражение
)
вставл.оператор
|