博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#中的global::system***命名空间别名限定符
阅读量:5773 次
发布时间:2019-06-18

本文共 945 字,大约阅读时间需要 3 分钟。

using System;

class TestApp

{
    // Define a new class called 'System' to cause
problems.
    public class System { }
    // Define a constant called 'Console' to cause more
problems.
    const int Console = 7;
    const int number =
66;
    static void Main()
    {
        // Error Accesses TestApp.Console
        //Console.WriteLine(number);
    }
}

由于类 TestApp.System 隐藏了

System 命名空间,因此使用
System.Console 仍然会导致错误:

// Error Accesses

TestApp.System
System.Console.WriteLine(number);

但是,可以通过使用 global::System.Console

避免这一错误,如下所示:

global::System.Console.WriteLine(number);

显然,并不推荐创建自己的名为 System

的命名空间,您不可能遇到出现此情况的任何代码。但是,在较大的项目中,很有可能在一个窗体或其他窗体中出现命名空间重复。在这种情况下,全局命名空间限定符可保证您可以指定根命名空间。

global 是 C# 2.0

中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。
假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System
的时候,编译器就不知道你是要指你写的 System 类还是系统的 System 命名空间,而 System
命名空间已经是根命名空间了,无法再通过完全限名来指定。在以前的 C# 版本中,这就是一个无法解决的问题。现在,可以通过
global::System 来表示 System
根命名空间,

而用你自己的 MyNamespace.System 

来表示自己的类。
当然,这种情况不应该出现,你不应该写一个名为 System 的类。

转自:

转载地址:http://ziaux.baihongyu.com/

你可能感兴趣的文章
Android BlueDroid(一):BlueDroid概述
查看>>
Java利用httpasyncclient进行异步HTTP请求
查看>>
循环多少次? 【杭电--HDOJ-1799】 附题+具体解释
查看>>
linux系统终端命令提示符设置(PS1)记录
查看>>
C++运算符重载
查看>>
【Web】URI和URL,及URL的编码
查看>>
宿舍局域网的应用
查看>>
html代码究竟什么用途
查看>>
oracle的substr函数的用法
查看>>
QT 数据库编程四
查看>>
npm下载包时代理配置
查看>>
全球十大理论
查看>>
model.addAttribute("student",student)——渲染
查看>>
JavaWeb开发之普通图片验证码生成技术与算术表达式验证码生成技术
查看>>
python和pywin32实现窗口查找、遍历和点击
查看>>
第二章 概率图模型的基本原理
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
sublime text 3浅色主题
查看>>