Unity C# 爆破计划(九):命名空间与 using

本文介绍了C#中的命名空间及其作用,它允许你在不同命名空间中使用相同类名而避免冲突。此外,还讲解了using关键字的三种用法:引入整个命名空间、引入静态类的所有成员以及为命名空间或类型创建别名,简化代码的引用方式。通过实例展示了如何在实际编程中有效利用这些特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


九、命名空间与 using

Covers:命名空间

命名空间

今天你准备写一个处理二维几何图形的程序,你用了 Shape 作为所有图形的基类,这很好;第二天你准备更上一层楼,写一个处理三维几何图形的程序,同时你还想让它跟昨天的成果相兼容。要怎么定义所有三维图形的基类呢?你英语不好,没想到“Geometry”这么高级的词汇,同时又不想用“Shape3d”这么 Low 的词……想来想去你决定还是用 Shape。

那么问题来了,两个基类重名了,怎么办?

命名空间 提供了解决命名冲突的方法,两个处于不同命名空间中的类即使重名也互不冲突。我们已经屡次接触 namespace 这个词了,它的意思就是定义一个命名空间。

namespace Geometry2
{
    class Shape {}
}

namespace Geometry3
{
    class Shape {}
}

上面在两个不同的命名空间中定义了重名的两个类,但依然能够编译通过。

命名空间也可以嵌套定义,比如把上面的两个命名空间装进一个统一的命名空间里,这样看起来更专业了:

namespace MyFabulousGeometryProject
{
    namespace Geometry2
    {
        class Shape
        {
        }
    }

    namespace Geometry3
    {
        class Shape
        {
        }
    }
}

using 关键字

想要准确地指定命名空间中的某个类,可以用点号:MyFabulousGeometryProject.Geometry2.Shape,也可以用我们的好朋友 using 关键字:

  • using NAMESPACE;:向当前文件中引入 NAMESPACE 命名空间中的所有类名,我们经常引入 System 命名空间,以使用其中的 Console 等类;

  • using static NAMESPACE.CLASSNAME;:向当前文件中引入 NAMESPACE 命名空间中的静态类 CLASSNAME 中的所有成员。例如在代码开头加上 using static System.Console; 之后,你就再也不用每次 WriteLine 都写一遍 Console 啦:

    using static System.Console;
    
    namespace Happy
    {
        class Program
        {
            static void Main()
            {
                WriteLine("Long live the keyword 'using'!");
            }
        }
    }
    
  • using ALIAS = NAME;:为命名空间或类 NAME 起一个别名 ALIAS,此后在当前文件中你就可以使用这个别名;

  • 一旦你 using 了某些东西,就不能再与你引入的东西重名,比如你不能再写一个名为 Console 的类。


T.B.C.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值