首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页C#编程杂项 → 命名空间,如何使用别名

    命名空间,如何使用别名

    发布:匿名 发布日期:2008-08-02 字体:[增加 减小] 类型:转载
    通过别名指示符我们可以为某个类型起一个别名
    主要用于解决两个命名空间内有同名类型的冲突或避免使用冗余的命名空间
    别名指示符在所有命名空间最外层定义,作用域为整个单元文件。如果定义在某个命名空间内,那么它只在直接隶属的命名空间内起作用
    示例:
    class1.cs: 

    using system;
    using system.collections.generic;
    using system.text;
    namespace com.nblogs.reonlyrun.csharp25qexample.example19.lib01
    {
        class class1
        {
            public override string tostring()
            {
                return "com.nblogs.reonlyrun.csharp25qexample.example19.lib01's class1";
            }
        }
    }
    class2.cs: 

    using system;
    using system.collections.generic;
    using system.text;
    namespace com.nblogs.reonlyrun.csharp25qexample.example19.lib02
    {
        class class1
        {
            public override string tostring()
            {
                return "com.nblogs.reonlyrun.csharp25qexample.example19.lib02's class1";
            }
        }
    }
    主单元(program.cs):
    using system;
    using system.collections.generic;
    using system.text;
    //使用别名指示符解决同名类型的冲突
    //在所有命名空间最外层定义,作用域为整个单元文件
    using lib01class1 = com.nblogs.reonlyrun.csharp25qexample.example19.lib01.class1;
    using lib02class2 = com.nblogs.reonlyrun.csharp25qexample.example19.lib02.class1;
    namespace example19
    {
        namespace test1
        {
            //test1class1在test1命名空间内定义,作用域仅在test1之内
            using test1class1 = com.nblogs.reonlyrun.csharp25qexample.example19.lib01.class1;
            class class1
            {
                //lib01class1和lib02class2在这可以正常使用
                lib01class1 tmpobj1 = new lib01class1();
                lib02class2 tmpobj2 = new lib02class2();
                //testclass1在这可以正常使用
                test1class1 tmpobj3 = new test1class1();
            }
        }
        namespace test2
        {
            using test1class2 = com.nblogs.reonlyrun.csharp25qexample.example19.lib01.class1;
            class program
            {
                static void main(string[] args)
                {
                    //lib01class1和lib02class2在这可以正常使用
                    lib01class1 tmpobj1 = new lib01class1();
                    lib02class2 tmpobj2 = new lib02class2();
                    //注意这里,testclass1在这不可以正常使用。
                    //因为,在test2命名空间内不能使用test1命名空间定义的别名
                    //test1class1 tmpobj3 = new test1class1();
                    //testclass2在这可以正常使用
                    test1class2 tmpobj3 = new test1class2();
                    console.writeline(tmpobj1);
                    console.writeline(tmpobj2);
                    console.writeline(tmpobj3);
                    console.readline();
                }
            }
        }
    }
    结果:
    com.nblogs.reonlyrun.csharp25qexample.example19.lib01's class1
    com.nblogs.reonlyrun.csharp25qexample.example19.lib02's class1
    com.nblogs.reonlyrun.csharp25qexample.example19.lib01's class1

     


    为配合网络严查,文章评论将关闭敬请谅解.
    同 类 文 章
    最 近 更 新
    热 点 排 行