到此呢,我们完成了 MainManager 的全部功能。在实现的过程中,我们应用了一次继承这个设计工具。并且还接触了 C# 中的枚举类型 (enum)。由于,MainManager 的实现逻辑有点多,所以呢,没有停下来仔细去讲这些新接触的概念。
那么今天趁着刚刚结束,我们强化一下所使用的知识点。
静态变量 vs 成员变量
首先第一个知识点是静态变量与成员变量,代码如下所示:
public
EnvironmentMode
Mode
;
private
static
EnvironmentMode
mSharedMode
;
private
static
bool
mModeSetted
=
false
;
静态变量与成员变量有什么区别呢? 从使用角度来说,如果要访问静态变量,我们需要通过类名去访问,而成员变量呢,则需要通过对象去访问。 从用途角度来说,静态变量更多地是对整个项目去做配置或者是记录等等,所以一般静态变量也叫做全局变量,而成员变量,则是记录对象本身的状态。 大体上了解到这个程度就够了。
枚举
第二个知识点是枚举
public
enum
EnvironmentMode
{
Developing
,
Test
,
Production
}
枚举经常是用来表示状态的,比如当前的环境为开发环境,对应的枚举则为 Developing。当然,也可以用来做为消息名或者事件名等等,因为枚举的值是可以转成数值类型的,比如 int、short等等,这样它可以参与一些简单的数学计算,所以作为消息名来说是非常合适的。目前,我们的 MsgDispatcher 是用字符串做事件名的,而如果使用枚举做事件名,效率就会更高也更强大,当然在使用上也会更加复杂一点,在后续呢,我们也会实现一个支持枚举的消息机制的。目前我们只要知道,枚举如何用,以及比较适合做什么就够了。
bool 锁
第三个知识点,是一个 bool 锁,这个是笔者自己起的名字,我们经常要做一些只做一次这样的逻辑。 比如如下代码:
if
(
!
mModeSetted
)
{
mSharedMode
=
Mode
;
mModeSetted
=
true
;
}
这段代码呢,是希望,项目运行之后,mShareMode 只能被赋值一次,那么有人会说,直接使用 readonly 关键字可不可以? 当然不可以,使用 readonly 在第二次赋值的时候会报编译错误的。
那么这三个是非常简单的知识点,根本说不上是设计工具。不过在项目中确是很实用的小套路。
其他
-
protect 访问权限
-
通过设计结构去解决问题
今天的内容就这些,我们下一篇再见。
转载请注明地址:凉鞋的笔记:
liangxiegame.com
订阅全套专栏:
liangxiegame.com
本文介绍了C#中的静态变量与成员变量的区别、枚举的应用场景及bool锁的使用方法。

被折叠的 条评论
为什么被折叠?



