C#嵌套命名空间的一点理解

在学习 CNBlogs_Dottext10_Beta2 时,起初看到如:namespace Dottext.Web.UI.WebControls之类的命名空间的定义,还以为Dottext.Web.UI.WebControls是一个命名空间的名称,后来看书才明白其实是嵌套命名空间的定义,以上的定义其实可以分解为:

namespace Dottext
{
    namespace Web
    {
        namespace UI
        {
            namespace WebControls
            {
                //...
            }
        }
    }
}

如果命名空间WebControls里定义了函数如:

namespace Dottext.Web.UI.WebControls
{
    class MyFirstClass
    {
        //...
    }
}

那类MyFirstClass只属于命名空间WebControls所了,也就是要引用MyFirstClass时,得用以下语句:

Dottext.Web.UI.WebControls.MyFirstClass = new Dottext.Web.UI.WebControls.MyFirstClass();



Dottext.Web.UI.MyFirstClass = new Dottext.Web.UI.MyFirstClass()

将会出现编译错误。而要使以上语句成立,需要在UI的命名空间里再定义MyFirstClass函数。

namespace Dottext.Web.UI
{
    class MyFirstClass
    {
        //...
    }
}

这样就形成了不同命名空间、相同函数(可以是不同实现)了。

引用方法也不同:

Dottext.Web.UI.WebControls.MyFirstClass = new Dottext.Web.UI.WebControls.MyFirstClass();
Dottext.Web.UI.MyFirstClass = new Dottext.Web.UI.MyFirstClass();
posted @ 2005-08-28 22:32  pcvc  阅读(2856)  评论(0)    收藏  举报