Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C-sharp language specification.2004.pdf
Скачиваний:
14
Добавлен:
23.08.2013
Размер:
2.55 Mб
Скачать

Annex A Grammar

1

2

3

4

5

6

type-declaration: class-declaration struct-declaration interface-declaration enum-declaration delegate-declaration

7A.2.6 Classes

8class-declaration:

9

attributesopt class-modifiersopt partialopt class identifier type-parameter-listopt

10

class-baseopt type-parameter-constraints-clausesopt class-body ;opt

11

class-modifiers:

12

class-modifier

13

class-modifiers class-modifier

14

class-modifier:

15

new

16

public

17

protected

18

internal

19

private

20

abstract

21

sealed

22static

23class-base:

24

:

class-type

25

:

interface-type-list

26: class-type , interface-type-list

27interface-type-list:

28

interface-type

29

interface-type-list , interface-type

30 class-body:

31{ class-member-declarationsopt }

32class-member-declarations:

33

class-member-declaration

34

class-member-declarations class-member-declaration

35

class-member-declaration:

36

constant-declaration

37

field-declaration

38

method-declaration

39

property-declaration

40

event-declaration

41

indexer-declaration

42

operator-declaration

43

constructor-declaration

44

destructor-declaration

45

static-constructor-declaration

46

type-declaration

47

constant-declaration:

48

attributesopt constant-modifiersopt const type constant-declarators ;

449

 

C# LANGUAGE SPECIFICATION

1

constant-modifiers:

2

constant-modifier

3

constant-modifiers constant-modifier

4

constant-modifier:

5

new

6

public

7

protected

8

internal

9private

10constant-declarators:

11

constant-declarator

12

constant-declarators , constant-declarator

13

constant-declarator:

14

identifier = constant-expression

15

field-declaration:

16

attributesopt field-modifiersopt type variable-declarators ;

17

field-modifiers:

18

field-modifier

19

field-modifiers field-modifier

20

field-modifier:

21

new

22

public

23

protected

24

internal

25

private

26

static

27

readonly

28volatile

29variable-declarators:

30

variable-declarator

 

31

variable-declarators , variable-declarator

 

32

variable-declarator:

 

33

identifier

 

34

identifier = variable-initializer

 

35

variable-initializer:

 

36

expression

 

37

array-initializer

 

38

method-declaration:

 

39

method-header method-body

 

40

method-header:

 

41

attributesopt method-modifiersopt return-type member-name

type-parameter-listopt

42

( formal-parameter-listopt ) type-parameter-constraints-clausesopt

43

method-modifiers:

 

44

method-modifier

 

45

method-modifiers method-modifier

 

450

Annex A Grammar

1

method-modifier:

2

new

3

public

4

protected

5

internal

6

private

7

static

8

virtual

9

sealed

10

override

11

abstract

12extern

13return-type:

14

type

15void

16member-name:

17

identifier

18

interface-type . identifier

19

method-body:

20

block

21;

22formal-parameter-list:

23

fixed-parameters

24

fixed-parameters , parameter-array

25

parameter-array

26

fixed-parameters:

27

fixed-parameter

28

fixed-parameters , fixed-parameter

29

fixed-parameter:

30

attributesopt parameter-modifieropt type identifier

31

parameter-modifier:

32

ref

33out

34parameter-array:

35

attributesopt params array-type identifier

36

property-declaration:

37

attributesopt property-modifiersopt type member-name { accessor-declarations }

38

property-modifiers:

39

property-modifier

40

property-modifiers property-modifier

451

 

C# LANGUAGE SPECIFICATION

1

property-modifier:

2

new

3

public

4

protected

5

internal

6

private

7

static

8

virtual

9

sealed

10

override

11

abstract

12extern

13member-name:

14

identifier

 

 

15

interface-type . identifier

 

 

16

accessor-declarations:

 

 

17

get-accessor-declaration set-accessor-declarationopt

18

set-accessor-declaration get-accessor-declarationopt

19

get-accessor-declaration:

 

 

20

attributesopt accessor-modifieropt

get

accessor-body

21

set-accessor-declaration:

 

 

22

attributesopt accessor-modifieropt

set

accessor-body

23

accessor-modifier:

 

 

24

protected

 

 

25

internal

 

 

26

private

 

 

27

protected internal

 

 

28internal protected

29accessor-body:

30

block

31;

32event-declaration:

33

attributesopt

event-modifiersopt

event

type

variable-declarators ;

34

attributesopt

event-modifiersopt

event

type

member-name { event-accessor-declarations

35}

36event-modifiers:

37

event-modifier

38

event-modifiers event-modifier

39

event-modifier:

40

new

41

public

42

protected

43

internal

44

private

45

static

46

virtual

47

sealed

48

override

49

abstract

50

extern

452

 

Annex A Grammar

1

event-accessor-declarations:

2

add-accessor-declaration remove-accessor-declaration

3

remove-accessor-declaration add-accessor-declaration

4

add-accessor-declaration:

5

attributesopt add block

6

remove-accessor-declaration:

7

attributesopt remove block

8

indexer-declaration:

9

attributesopt indexer-modifiersopt indexer-declarator { accessor-declarations }

10

indexer-modifiers:

11

indexer-modifier

12

indexer-modifiers indexer-modifier

13

indexer-modifier:

14

new

15

public

16

protected

17

internal

18

private

19

virtual

20

sealed

21

override

22

abstract

23extern

24indexer-declarator:

25

type this [ formal-parameter-list ]

26

type interface-type . this [ formal-parameter-list ]

27

operator-declaration:

28

attributesopt operator-modifiers operator-declarator operator-body

29

operator-modifiers:

30

operator-modifier

31

operator-modifiers operator-modifier

32

operator-modifier:

33

public

34

static

35extern

36operator-declarator:

37

unary-operator-declarator

 

 

 

 

 

 

 

38

binary-operator-declarator

 

 

 

 

 

 

 

39

conversion-operator-declarator

 

 

 

 

 

 

40

unary-operator-declarator:

 

 

 

 

 

 

 

41

type operator overloadable-unary-operator ( type identifier )

 

 

 

42

overloadable-unary-operator: one of

 

 

 

 

 

 

43

+

-

!

~

++

--

true

false

 

 

 

 

44

binary-operator-declarator:

 

 

 

 

 

 

 

45

type operator overloadable-binary-operator ( type identifier , type identifier )

46

overloadable-binary-operator: one of

 

<< right-shift

 

 

 

 

47

+

-

*

/

% &

|

^

==

!=

>

<

48

 

>=

 

<=

 

 

 

 

 

 

 

 

453

Соседние файлы в предмете Электротехника