当前位置: 首页 > 编程笔记 >

在C#中global关键字的作用及其用法

阚正真
2023-03-14
本文向大家介绍在C#中global关键字的作用及其用法,包括了在C#中global关键字的作用及其用法的使用技巧和注意事项,需要的朋友参考一下

global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。

假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System 的时候,编译器就不知道你是要指你写的 System 类还是系统的 System 命名空间,而 System 命名空间已经是根命名空间了,无法再通过完全限名来指定。在以前的 C# 版本中,这就是一个无法解决的问题。现在,可以通过global::System来表示 System 根命名空间,而用你自己的MyNamespace.System来表示自己的类。

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

代码演示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace globalFunc

{

    class Program

    {

        static void Main(string[] args)

        {

            System sys = new System();

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

            global::System.Console.ReadKey();

        }

    }

    public class System { }

}

虽然using了一个System命名空间,但是下面还有一个public class System{ ... }类,这样的话,如果直接使用System.Console.WriteLine是会报错的,因为会找到就近的System类,那么这个System类里面没有Console。所以如果需要使用的话,就需要像上面一样,使用global::System.Console.WriteLine,因为使用global标记的类会从全局开始寻找,我的理解就是会从最外面逐渐向内部寻找System类。

 类似资料:
  • 根据我的理解,存在存储持续时间,这意味着在全局的情况下,它会持续到程序的生存期,但是当您谈到局部的情况时,它意味着默认情况下初始化为零。 C++标准对具有关键字的类数据成员这样说: 3.7.1静态存储持续时间[basic.stc.Static] 局部变量是什么意思?那是函数局部变量吗?因为当您将函数local声明为时,它只在第一次进入该函数时初始化一次。 它也只讨论与类成员有关的存储持续时间,它不

  • 问题内容: 通过阅读文档,我了解到Python具有一个单独的函数命名空间,如果我想在该函数中使用全局变量,则需要使用global。 我正在使用Python 2.7,并且尝试了这个小测试 即使没有,看起来一切都很好global。我能够毫无问题地访问全局变量。 我有什么想念的吗?另外,以下是Python文档中的内容: 全局语句中列出的名称不得定义为形式参数,也不得在for循环控制目标,类定义,函数定义

  • 本文向大家介绍C# 中static关键字的作用?相关面试题,主要包含被问及C# 中static关键字的作用?时的应答技巧和注意事项,需要的朋友参考一下 对类有意义的字段和方法使用static关键字修饰,称为静态成员,通过类名加访问操作符“.”进行访问; 对类的实例有意义的字段和方法不加static关键字,称为非静态成员或实例成员。 注: 静态字段在内存中只有一个拷贝,非静态字段则是在每个实例对象中

  • 本文向大家介绍详解C/C++中const关键字的用法及其与宏常量的比较,包括了详解C/C++中const关键字的用法及其与宏常量的比较的使用技巧和注意事项,需要的朋友参考一下 1.const关键字的性质 简单来说:const关键字修饰的变量具有常属性。 即它所修饰的变量不能被修改。 2.修饰局部变量 这两种写法是等价的,都是表示变量的值不能被改变,需要注意的是,用const修饰变量时,一定要给变量

  • 本文向大家介绍C关键字static、const、extern作用相关面试题,主要包含被问及C关键字static、const、extern作用时的应答技巧和注意事项,需要的朋友参考一下 static和const的作用在描述时主要从类内和类外两个方面去讲: static关键字的作用: (1)函数体内static变量的作用范围为该函数体,该变量的内存只被分配一次,因此其值在下次调用时仍维持上次的值; (

  • 我已经开始使用JAVA,并使用RxTx进行串行通信。 指:http://rxtx.qbang.org/wiki/index.php/Event_based_two_way_Communicationhttp://henrypoon.wordpress.com/2011/01/01/serial-communication-in-java-with-example-program/ 在第二个链接中,