13.07.2015 Views

C# Language Specification - Willy .Net

C# Language Specification - Willy .Net

C# Language Specification - Willy .Net

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 16 Namespaces16. Namespaces<strong>C#</strong> programs are organized using namespaces. Namespaces are used both as an “internal” organizationsystem for a program, and as an “external” organization system—a way of presenting program elements thatare exposed to other programs.Using-directives (§16.3) are provided to facilitate the use of namespaces.16.1 Compilation unitsA compilation-unit defines the overall structure of a source file. A compilation unit consists of zero or moreusing-directives followed by zero or more global-attributes followed by zero or more namespace-memberdeclarations.compilation-unit:using-directives opt global-attributes opt namespace-member-declarations optA <strong>C#</strong> program consists of one or more compilation units, each contained in a separate source file. When a<strong>C#</strong> program is compiled, all of the compilation units are processed together. Thus, compilation units candepend on each other, possibly in a circular fashion.The using-directives of a compilation unit affect the global-attributes and namespace-member-declarationsof that compilation unit, but have no effect on other compilation units.The global-attributes (§24) of a compilation unit permit the specification of attributes for the targetassembly. Assemblies act as physical containers for types.The namespace-member-declarations of each compilation unit of a program contribute members to a singledeclaration space called the global namespace. [Example: For example:File A.cs:class A {}File B.cs:class B {}The two compilation units contribute to the single global namespace, in this case declaring two classes withthe fully qualified names A and B. Because the two compilation units contribute to the same declarationspace, it would have been an error if each contained a declaration of a member with the same name. endexample]16.2 Namespace declarationsA namespace-declaration consists of the keyword namespace, followed by a namespace name and body,optionally followed by a semicolon.namespace-declaration:namespace qualified-identifier namespace-body ; optqualified-identifier:identifierqualified-identifier . identifiernamespace-body:{ using-directives opt namespace-member-declarations opt }201

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!