写点什么

starforce 源码解读一:关键字 partial

用户头像
风翱
关注
发布于: 2021 年 04 月 05 日

Star Force 是一个使用 Game Framework 游戏框架制作的游戏演示项目,因为 Game Framework 框架文档奇缺,想要学习 Game Framework 框架,阅读 Star Force 项目是主要的一条路径。

Game Framework 是一个基于 Unity 引擎的游戏框架,主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。


今天从关键字 partial 开始一步一步解读。

partial 是部分之意,C#的关键字(局部类型),可以将类、结构或接口的定义拆分到多个源文件中,只要在声明(类、结构或接口)前使用 partial 即可。

注:以下类、结构或接口,暂时统成为类。

一、适用范围

  1. 类特别大,放在一个文件中,不易读,可维护性差。

  2. 类中一部分是我们自己编写的,一部分是自动化工具生成的。

  3. 多人编写同个类时。

二、使用限制

  1. 只适用于类、结构或接口,不适用于委托和接口。

  2. 各个部分(不同的文件)都需要有关键字 partial,需要是相同的命名空间。

  3. partial 只有和 class、struct、interface 才有局部类型的意义,代码中可使用 partial 作为变量名称。

二、特性

具有累加效应。


接下来看看项目中的使用:

文件:GameEntry.cs

public partial class GameEntry : MonoBehaviour    {        private void Start()        {            InitBuiltinComponents();            InitCustomComponents();        }    }
复制代码

文件:GameEntry.Builtin.cs

public partial class GameEntry : MonoBehaviour

文件:GameEntry.Custom.cs

public partial class GameEntry : MonoBehaviour


可以看到虽然文件名不同,但是类名都是GameEntry声明前面包含partial class

项目中有多次地方采用了此方式,作者对应项目的分层相当严格,从partial的使用就可看得出来。


发布于: 2021 年 04 月 05 日阅读数: 13
用户头像

风翱

关注

还未添加个人签名 2017.11.24 加入

勇于尝试,持续成长

评论

发布
暂无评论
starforce源码解读一:关键字partial