=======================================
Class event declarations
=======================================
class A {
public event EventHandler<T> SomeEvent { add { } remove { } }
}
---
(compilation_unit
(class_declaration
(identifier)
(declaration_list
(event_declaration
(modifier)
(generic_name (identifier)
(type_argument_list (identifier)))
(identifier)
(accessor_list
(accessor_declaration (block))
(accessor_declaration (block)))))))
=======================================
Struct event declarations
=======================================
struct A {
public event EventHandler<T> SomeEvent { add { } remove { } }
}
---
(compilation_unit
(struct_declaration
(identifier)
(declaration_list
(event_declaration
(modifier)
(generic_name (identifier)
(type_argument_list (identifier)))
(identifier)
(accessor_list
(accessor_declaration (block))
(accessor_declaration (block)))))))
=======================================
Class event declarations with expression bodies
=======================================
class A {
public event EventHandler SomeEvent { add => addSomething(); remove => removeSomething(); }
}
---
(compilation_unit
(class_declaration
(identifier)
(declaration_list
(event_declaration
(modifier)
(identifier)
(identifier)
(accessor_list
(accessor_declaration (arrow_expression_clause (invocation_expression (identifier) (argument_list))))
(accessor_declaration (arrow_expression_clause (invocation_expression (identifier) (argument_list)))))))))