event-declaration vs interface-event-declaration

  • Thread starter Thread starter Alex Sedow
  • Start date Start date
A

Alex Sedow

Why interface-event-declaration does not support multiple declarators like
event-declaration?

Grammar from C# spec:

variable-declarators:
variable-declarator
variable-declarators "," variable-declarator

variable-declarator:
identifier
identifier "=" variable-initializer

event-declaration:
[attributes] [event-modifiers] "event" type variable-declarators ";"

interface-event-declaration:
[attributes] ["new"] "event" type identifier ";"

For example grammar for interface-event-declaration may looks like this:

interface-variable-declarator:
interface-variable-declarator
interface-variable-declarator "," interface-variable-declarator

interface-variable-declarator:
identifier

interface-event-declaration:
[attributes] ["new"] "event" type interface-variable-declarators ";"

Alex.
 
Alex Sedow said:
Why interface-event-declaration does not support multiple declarators like
event-declaration?

Grammar from C# spec:

variable-declarators:
variable-declarator
variable-declarators "," variable-declarator

variable-declarator:
identifier
identifier "=" variable-initializer

event-declaration:
[attributes] [event-modifiers] "event" type variable-declarators ";"

interface-event-declaration:
[attributes] ["new"] "event" type identifier ";"

For example grammar for interface-event-declaration may looks like this:

interface-variable-declarator:
interface-variable-declarator
interface-variable-declarator "," interface-variable-declarator

interface-variable-declarator:
identifier

interface-event-declaration:
[attributes] ["new"] "event" type interface-variable-declarators ";"

I can't say for sure, but interfaces cannot define variables, only event
properties, unlike what happens in other types(which generates both an event
property and a local field). I would imagine it is done to maintain
consistency with other interface declarations.
 
Back
Top