C# 关于namespace的细节

<1>namespace的层次结构优先于namespace的别名
如果出现这种别名和已有的namespace重名的情况,要想试用别名可以使用"::"这样就限制了调用的是别名命名空间。
using MyNamespace = ConsoleApplication19Namespace.MyNamespace2;
namespace ConsoleApplication19Namespace
{
    class Program
    {
        static void Main(string[] args)
        {
            MyNamespace.Myclass My = new MyNamespace.Myclass();
            My.print();
            MyNamespace::Myclass You = new MyNamespace::Myclass();
            You.print();
        }
    }


    namespace MyNamespace
    {
        class Myclass
        {
            public void print()
            {
                Console.WriteLine("This is in the ConsoleApplication.MyNamespace.Myclass");
            }
        }
    }


    namespace MyNamespace2
    {
        class Myclass
        {
            public void print()
            {
                Console.WriteLine("This is in the ConsoleApplication.MyNamespace2.Myclass");
            }
        }
    }
}


output:
This is in the ConsoleApplication.MyNamespace.Myclass
This is in the ConsoleApplication.MyNamespace2.Myclass


<2>全局命名空间
global和“::”一起使用 globale::表示的顶级根namespace的别名,通过顶级根namespace的调用可以防止外部变量或者外部类被内部变量,内部类隐藏的出现。
例如:
global::System.Console.WriteLine("what a fuck day");//这样就不会出现问题。


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值