16.2 Namespace declarations

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).
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值