16.2 Namespace declarations

王朝other·作者佚名  2006-05-06
窄屏简体版  字體: |||超大  

A 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 ;opt

qualified-identifier:

identifier

qualified-identifier . identifier

namespace-body:

{ using-directivesopt namespace-member-declarationsopt }

C# LANGUAGE SPECIFICATION

202

A namespace-declaration may occur as a top-level declaration in a

compilation-unit or as a member

declaration within another namespace-declaration. When a

namespace-declaration occurs as a top-level

declaration in a compilation-unit, the namespace becomes a member of the

global namespace. When a

namespace-declaration occurs within another namespace-declaration, the

inner namespace becomes a

member of the outer namespace. In either case, the name of a namespace must

be unique within the

containing namespace.

Namespaces are implicitly public and the declaration of a namespace cannot

include any access modifiers.

Within a namespace-body, the optional using-directives import the names of

other namespaces and types,

allowing them to be referenced directly instead of through qualified names.

The optional namespacemember-

declarations contribute members to the declaration space of the namespace.

Note that all usingdirectives

must appear before any member declarations.

The qualified-identifier of a namespace-declaration may be a single

identifier or a sequence of identifiers

separated by ?.? tokens. The latter form permits a program to define a

nested namespace without lexically

nesting several namespace declarations. [Example: For example,

namespace N1.N2

{

class A {}

class B {}

}

is semantically equivalent to

namespace N1

{

namespace N2

{

class A {}

class B {}

}

}

end example]

Namespaces are open-ended, and two namespace declarations with the same

fully qualified name contribute

to the same declaration space (§10.3). [Example: In the example

namespace N1.N2

{

class A {}

}

namespace N1.N2

{

class B {}

}

the two namespace declarations above contribute to the same declaration

space, in this case declaring two

classes with the fully qualified names N1.N2.A and N1.N2.B. Because the two

declarations contribute to

the same declaration space, it would have been an error if each contained a

declaration of a member with the

same name. end example]

Namespaces whose names begin with System. are reserved for use by the

Standard Library (§D).

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航