Methods may be declared in namespaces, classes, interfaces, structs, enums, and error domains
method-declaration: [ access-modifier ] [ member-modifers ] return-type qualified-identifier ( [ parameter-list ] ) method-contract [throws error-list ]{ statement-list} member-modifiers: member-modifier [ member-modifiers ] member-modifier:abstract class extern inline override static virtual return-type: typevoid parameter-list: [ parameter-direction ] type identifier [, parameter-list ] parameter-direction:ref out method-contract: [requires ( expression) ] [ensures ( expression) ] error-list: error-type [, error-list ]