C# 命名空间(Namespace)

摘选一些关于命名空间的定义,大家共同参考哈

命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。

定义命名空间

命名空间的定义是以关键字 namespace 开始,后跟命名空间的名称,如下所示:

namespace namespace_name
{
   // 代码声明
}

为了调用支持命名空间版本的函数或变量,会把命名空间的名称置于前面,如下所示:

namespace_name.item_name;

下面的程序演示了命名空间的用法:

实例

using System;
namespace first_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass
{
   static void Main(string[] args)
   {
      first_space.namespace_cl fc = new first_space.namespace_cl();
      second_space.namespace_cl sc = new second_space.namespace_cl();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space
Inside second_space

using 关键字

using 关键字表明程序使用的是给定命名空间中的名称。例如,我们在程序中使用 System 命名空间,其中定义了类 Console。我们可以只写:

Console.WriteLine ("Hello there");

我们可以写完全限定名称,如下:

System.Console.WriteLine("Hello there");

您也可以使用 using 命名空间指令,这样在使用的时候就不用在前面加上命名空间名称。该指令告诉编译器随后的代码使用了指定命名空间中的名称。下面的代码演示了命名空间的应用。

让我们使用 using 指定重写上面的实例:

实例

using System;
using first_space;
using second_space;

namespace first_space
{
   class abc
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class efg
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass
{
   static void Main(string[] args)
   {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space
Inside second_space

嵌套命名空间

命名空间可以被嵌套,即您可以在一个命名空间内定义另一个命名空间,如下所示:

namespace namespace_name1
{// 代码声明namespace namespace_name2 {// 代码声明}
}

您可以使用点(.)运算符访问嵌套的命名空间的成员,如下所示:

实例

using System;
using SomeNameSpace;
using SomeNameSpace.Nested;

namespace SomeNameSpace
{
    public class MyClass 
    {
        static void Main() 
        {
            Console.WriteLine("In SomeNameSpace");
            Nested.NestedNameSpaceClass.SayHello();
        }
    }

// 内嵌命名空间
    namespace Nested   
    {
        public class NestedNameSpaceClass 
        {
            public static void SayHello() 
            {
                Console.WriteLine("In Nested");
            }
        }
    }
}

当上面的代码被编译和执行时,它会产生下列结果:

In SomeNameSpace
In Nested

Unity中C# 命名空间相关推荐

  1. unity 创建图片ui_在 Unity中 将游戏数据储存至本地文档

    作者:游戏工坊-胡继伟 链接:https://blog.csdn.net/hu1262340436/article/details/110236103 在Unity中 添加本地文档储存游戏数据 首先我 ...

  2. Unity C# namespace 命名空间的使用

    命名空间在多个面对对象的语言中有应用,例如JAVA,C++,C#.本文主要记录了在C#中如何调用不同命名空间的public class. 首先对namespace做一个简单的总结.如果说类是对属性和方 ...

  3. unity中使用protobuf-net

    https://blog.csdn.net/u012741077/article/details/51213100 https://blog.csdn.net/u012741077/article/d ...

  4. Unity中的特殊的文件夹

    Unity中所有特殊的文件夹 1. Hidden Assets(隐藏文件夹) 2. Standard Assets 3. Pro Standard Assets 4. Editor 5. Plugin ...

  5. Protobuf(Protocol Buffer)在Unity中的简单应用

    一.Protobuf的概念 高效轻便的数据存储格式(序列化和反序列化). 与平台和语言无关. 在网络通信和数据存储上应用广泛. 二.Protobuf的工作流 环境安装 使用Visual Studio2 ...

  6. Unity报错但VS(代码编辑器)不报错,Unity提示需要继承自MonoBehavior,Unity提示缺少命名空间或者DLL,Unity点击UI或者GameObject无法在Hierarchy锁定

    Unity一些神奇的报错包括但不限于 在2021年10月1日到2021年10月31日遇到的一些神奇的Unity的报错. 继承了MonoBehavior 但是Unity提示没有继承 问题描述:提示创建的 ...

  7. Unity中使用ProtoBuf-保姆式教程

    ·ProtoBuf介绍 ProtoBuf 是结构数据序列化方法,可简单类比于 XML.JSON,其具有以下特点: 语言无关.平台无关.即 ProtoBuf 支持 Java.C++.Python 等多种 ...

  8. Unity中的Object和object的区别

    Object是UnityEngine.Object,是Unity所有组件Component和游戏对象GameObject的父类: object在Unity中是System.Object Debug.L ...

  9. 关于UNITY中System.Drawing引用失败的处理方法

    关于UNITY中System.Drawing引用失败的处理方法 今天在使用EPPlus中,遇到一个处于This type has been forwarded to assembly 'System. ...

最新文章

  1. Eclipse RCP 中将窗口始终保持在最前
  2. 客户端相关知识学习(四)之H5页面如何嵌套到APP中
  3. SpringBoot 信息输出
  4. 工程项目成本/进度综合控制方法及应用
  5. 为什么大公司一定要使用 DevOps?
  6. [转载] Python 内置函数 lambda、filter、map、reduce
  7. mysql insert 性能_MySQL 提高Insert性能
  8. 【渝粤教育】广东开放大学 民族音乐概论 形成性考核 (58)
  9. 安卓app开发-02-安卓app快速开发
  10. [2018.07.12 T2] B君的第二题
  11. 软件开发必备英语汇总(持续更新)
  12. IntelRealsense升级摄像头的固件版本方法
  13. 常用计算机技能大全,八个超实用的电脑技能( 快收藏!)
  14. 当你经历人生最大的困难,要如何正确走出来?
  15. 学习计算机英语总结,英语学习方法总结
  16. 基于sklearn进行蝴蝶花分类案例(Python机器学习笔记)
  17. Redis进阶:布隆过滤器(Bloom Filter)及误判率数学推导
  18. 【python】装饰模式
  19. 计算机显示器模糊,电脑显示器模糊的原因和解决方法【图文】
  20. 再谈腾讯与360无端争吵事件

热门文章

  1. 中职学前专业钢琴集体课教学改革探讨
  2. K8S集群中Pod资源处于Pending状态排查思路
  3. android2.3 如何生成编译odex,dex,odex,热更新原理简述
  4. 错误: Could not set parameters for mapping
  5. 一只蒟蒻OIer的自我介绍
  6. Go实现算法:N的阶乘
  7. 德语语法:德语的冠词
  8. c语言国二资料,国二C语言精讲资料.doc
  9. c语言国二sizeof题目,国二c语言选择题参考答案
  10. 黄金k线图基础知识之K线的十二种基本变化