文档章节

命名空间(namespace)

LIndieGS
 LIndieGS
发布于 2017/06/08 16:36
字数 540
阅读 12
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

原文链接:https://docs.unity3d.com/Manual/Namespaces.html

    当项目越来越大,脚本越来越多,脚本类名间发生冲突的可能性就越大。现实的游戏开发中,是数名程序员针对游戏不同的方面分别开发,但最后都会把各自的劳动成果汇总到一个项目里。但当一位程序员为游戏主角写控制他的代码时,另一位程序员写了相同的代码,用来控制敌人。它们两个可能都选择Controller来作为这个脚本里这个类的类名,当项目合并时,就可能导致冲突。

    在某种程度上,这个问题可以通过采用一套命名规则或重命名类来避免(比如 :命名为PlayerController和EnemyController)。可是,当好几个类都发生冲突,或者变量也用这些名字声明时,这就变得很麻烦。

    C#提供了一个叫命名空间(namespace)的特性,它能轻易的解决上面遇到的问题。命名空间是一个类的集合。下面的例子中,类Controller1和类Controller2是命名空间Enemy的成员:

namespace Enemy {
    public class Controller1 : MonoBehaviour {
        ...
    }
    
    public class Controller2 : MonoBehaviour {
        ...
    }
}

    在代码中,这两个类各自通过Enemy.Controller1和Enemy.Controller2的方式引用。这比在命名空间的范围内重命名类名要好的多(比如,没必要单独改变类名)。而且,你能使用多种命名空间来区分你的类,无论它们出现在哪,即使这些类在不同的源文件夹里都可以这样操作。

    你也可以不用每次都加命名空间的前缀,只需使用using关键字在代码的顶部就可以了:

using Enemy;

    这行代码表明类Controller1和 Controller2可以在Enemy这个命名空间中被找到,这等价于Enemy.Controller1,Enemy.Controller2。如果脚本需要引用的同名类来自不同的命名空间,那么前缀就是必须的了。如果两个命名空间包含了冲突的类名,当都直接用using关键字直接引用的话,编译器就会报错。

LIndieGS
粉丝 0
博文 9
码字总数 6421
作品 0
程序员
私信 提问
加载中
请先登录后再评论。
beego API开发以及自动化文档

beego API开发以及自动化文档 beego1.3版本已经在上个星期发布了,但是还是有很多人不了解如何来进行开发,也是在一步一步的测试中开发,期间QQ群里面很多人都问我如何开发,我的业余时间实在...

astaxie
2014/06/25
2.7W
22
集群存储系统--YFS

YFS集群存储系统由多个元数据服务器(MDS)、多个块数据服务器(CDS)和多个客户端(client)互联组成集群; 数据被分成64M固定大小的数据块(Chunk),每个数据块在CDS本地以常规文件的形式...

匿名
2013/02/19
1.8K
0
Python开发者社区整站源码--Pythoner

pythoner.net 整站源代码 依赖模块 Django 1.4.2 PIL DjangoVerifyCode 0.2.2 开发环境配置 运行scripts目录下的setupenv.sh文件,将会自动安装配置所需环境 设置本地环境变量:export env=D...

~T.y~
2013/04/10
3.2K
0
磁盘空间统计工具--Disk Inventory X

Disk Inventory X 是运行于 Mac OS X 10.3 (及以上)的磁盘空间统计工具。它通过 "treemaps" 的特殊方式显示了文件及文件夹的占用空间情况。 如果你经常想知道你的磁盘空间都被什么文件占用的...

匿名
2012/11/13
1.2K
0
Go 的 Web 框架--Golanger

Golanger 是一个轻量级的 Web 应用框架,使用 Go 语言编写。 Golanger框架主要实现了MVC模式(三层架构模式)(Model-View-Controller), 它是软件工程中的一种软件架构模式,把软件系统分为三个...

余风11
2012/11/23
9.1K
1

没有更多内容

加载失败,请刷新页面

加载更多

不畏加班,不念下班,这样的奋斗逼文化你见过吗?

下班回家的时候刷到这样一条帖子: 网友投稿,海淀某互联网公司,都是不996了,要求"不畏加班,不念下班”,鼓励尽量住在公司,从起床工作到睡觉。。。这样的公司你怎么看? 我的天,这还得了...

osc_8qovbqi5
2分钟前
0
0
第2章 渗透测试方法论 一篇就够了

文章目录 第2章 渗透测试方法论 2.1 渗透测试的种类 2.1.1 黑盒测试 2.1.2 白盒测试 2.2 脆弱性评估与渗透测试 2.3 安全测试方法论 2.3.1 开源安全测试方法论(OSSTMM) 2.3.2 信息系统安全评...

osc_494omtst
4分钟前
0
0
用实验证明,二极管PN结中的玻尔兹曼常数

前言 在网文 「An Electronic Mesurement of the Boltzmann's Constant Using I-V Characterisctic of a Silicon 2N2309 Diode」[1] 中介绍了使用三极管2N3094来测量 「Boltzmann Constant」......

whoisliang
4分钟前
0
0
限制条件下计算累加和

Question:求 1+2+…+n ? 要求不能使用乘除法、for、while、if、else、switch、case 等关键字。 ps: 代码无误,但运行则需要自行整理(没错,我就是懒得整理)。 . No.0 三目运算符 class So...

osc_9yulefcq
5分钟前
0
0
Vue.js实训【基础理论(5天)+项目实战(5天)】博客汇总表【详细笔记】

目 录 前言 基础理论(5天) 基础理论-Day01 基础理论-Day02 基础理论-Day03 基础理论-Day04 基础理论-Day05 项目实战 项目实战-Day01 项目实战-Day02 项目实战-Day03 项目实战-Day04、Day05...

osc_l4ynn973
5分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部