如何访问与类实例同名的命名空间?

时间:2011-08-02 12:36:22

标签: c# asp.net-mvc vb.net

我对命名空间名称和类有疑问:

如果我在名称空间VeloConnect中有一个名为cVeloConnect的类。 e.g。

namespace VeloConnect
{
    public class cVeloConnect
    {
        // Some content
        public void PrintMe();

    }

    public class cSomeClass
    {
        // Some content

    }
}

现在我想创建一个新的cVeloConnect实例,调用此实例VeloConnect,我再也无法访问VeloConnect命名空间了... e.g

VeloConnect.cVeloConnect VeloConnect = new VeloConnect.cVeloConnect();
VeloConnect.PrintMe();
// The below thing is not possible
VeloConnect.cSomeClass MyClass = new VeloConnect.cSomeClass();

如果我不想重命名命名空间或以前的实例,我如何访问其他类?

2 个答案:

答案 0 :(得分:5)

嗯,一个选项是遵循命名约定以避免这种情况 - 您的类不应该c开头,而您的本地变量通常以小写字母开头信。

为了避免在声明中使用所有命名空间,您只需在代码顶部使用using指令即可。或者,如果确实想要指定命名空间,则可以使用global::

global::VeloConnect.cSomeClass MyClass = new global::VeloConnect.cSomeClass();

一般来说,我不喜欢在我的实际代码中看到命名空间 - 我更喜欢使用using指令,所以我可以在代码体中使用简单的名称。无论哪种方式,我都强烈敦促您开始关注.NET naming conventions

答案 1 :(得分:1)

别名命名空间;

 using vc=VeloConnect;

 // ... then, later ....

 vc.cVeloConnect VeloConnect = new vc.cVeloConnect();
 VeloConnect.PrintMe();
 // The below thing is not possible
 vc.cSomeClass MyClass = new vc.cSomeClass();