【发布时间】:2013-03-04 16:27:43
【问题描述】:
请看我下面的示例程序。我有两个名称空间包含相同的struct。为了避免在Main() 中使用时发生冲突,我给了命名空间别名。在从Main() 调用struct 时,我可以通过命名空间别名直接调用,例如test.MyStruct。我还有另一种选择,也使用:: 运算符,例如test::MyStruct。
为什么需要:: 运算符,我应该在哪里使用它而不是别名?
using System;
using test=counter;
using duplicatecounter;
namespace counter
{
struct MyStruct
{
}
}
namespace duplicatecounter
{
struct MyStruct
{
}
}
class Program
{
public static void Main()
{
test.MyStruct a = new test.MyStruct();
test::MyStruct a1 = new test::MyStruct();
}
}
【问题讨论】:
-
好吧,这里的问题更多是为什么要使用
namespace::type运算符而不是namespace.type形式。我试图在这里找出差异。 -
Deepack - 这是一个合理的问题,但这里提出的方式并没有说得很清楚。如果您仍然想知道,我建议您提出一个新问题,明确说明“有什么区别”或“何时使用一个而不是另一个”。我不建议提出命名空间别名,因为它们只会混淆问题。
标签: c# .net namespaces