C#零基础入门04:打老鼠初级之枚举、重构、事件处理器

简介: 一:为界面加入“开始”、“暂停”、“停止” 经过上节课程我们的交互的过程,我们的程序增加了用户友好度,同时也可以记录更为详尽的成绩了。但是我们仍然发现有很多地方需要值得改进(或许你还发现了BUG?不着急。

一:为界面加入“开始”、“暂停”、“停止”

经过上节课程我们的交互的过程,我们的程序增加了用户友好度,同时也可以记录更为详尽的成绩了。但是我们仍然发现有很多地方需要值得改进(或许你还发现了BUG?不着急。),首要的,似乎不应该让界面一出现,游戏就开始,我们需要为程序增加“开始”、“暂停”、“停止”按钮。而且,游戏太功能太单一了,我们似乎应该增加一个难度等级,没错,暂时就分为“简单”、“中等”、“难”吧。

现在,我们就来增加这些功能,查看视频。

 

二:视频

非公开部分,请联系最课程(www.zuikc.com

 

三:为游戏增加难度等级

完成了UI,接下来就要为那么多的事件处理器增加游戏的逻辑,功能实现请看视频。

 

四:视频

非公开部分,请联系最课程(www.zuikc.com

 

五:视频总结

1:首先,我们学到了如何使用如下快捷键,要知道,熟练的使用快捷键会增加你写代码的信心:

Tab:让VS帮我们快速完成代码;

Ctrl+C:不仅仅是复制哦,而是在不选中任何内容的时候进行复制;

Ctrl+D:默认在当前之上粘贴剪贴板中的整行;

Ctrl+Shift+箭头:选单词;

Alt+右键头:智能感知;

Ctrl+K+D:自动对齐代码;

2:用switch取代if

当出现太多的if的使用,可以尝试使用switch来进行取代if。当然如果出现了3个以上的if条件,就要小心了,也许我们应该修改代码了,因为太多的if条件,让代码显得那么的不面向对象。别急,我们即将会学到面向对象。

3:新增文件

在这个例子中,我们学习了如何为项目增加一个文件;

4:如果出现了重复代码,就需要进行提炼方法,这种让代码质量持续改进的方法,有一个很时髦的名字:重构

我们在下下节课中,将会学习面向对象编程(OOP),我们会进行大量的重构,我们应该要期待OOP,因为这会让我们像写诗一般去写代码。

5:枚举

枚举在C#中,是一个跟class等级别重要的概念。我们已经在之前的课程里讲过,类有属性和行为,而枚举呢,只有一组代表不同含义的指,如:周一到周日,可以定义一个这样的枚举:

enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

我们在我们的游戏中,将难度定义成了一个枚举,如下:

enum Level
{
    Basic,
    Middle,
    High
}

6:事件处理器

事件处理器是什么,就是方法,如果一个方法被赋值给了一个事件变量,那么这个方法就是一个事件处理器。原则上,这个概念我们会在下一小节讲到,包括委托处理器,但是如果你一定要对Button按钮事件现在就做了解,那么我们就该知道这个概念。那么,什么叫给事件变量赋值呢?其实我们已经见过了这样的代码了:

wps_clip_image-26478

在我们这个游戏当中,我们当前的代码中:

wps_clip_image-25623

就是一个事件处理器,它被赋值给Button的Click事件变量的语句是VS自动给我们生成在了Form1.Designer.cs中了,如下:

            this.buttonStart.Click += new System.EventHandler(this.buttonStart_Click);

我们在今天的编码中,并没有编写如上的语句,是因为VS做好事,帮我们写了这样的语句,但是,如果我们一定要深究,为什么我Click之后,它就会自动执行游戏开始的代码呢?OK,看一看Form1.Designer.cs,就什么都知道了。

微信扫一扫,关注最课程(www.zuikc.com),获取更多我的文章,获取软件开发每日一练

Creative Commons License本文基于 Creative Commons Attribution 2.5 China Mainland License发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 http://www.cnblogs.com/luminji(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
目录
相关文章
|
C# uml
C#零基础入门07:打老鼠之面向对象重构
一:前言 有了上面两节的知识,尤其是第六节之后,现在我们回过头看我们的打老鼠游戏,我们是不是会发现:这个程序也太不面向对象了。我们所有的代码逻辑都分布在Code-Hide中(UI的后台代码,称之为Code-Hide)。
1073 0
C#基础知识学习之 ✨ “精神小伙“——委托(delegate) 的含义和用法
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针。 委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。 委托就是用来储存方法的结构 委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。
|
Java iOS开发
千字掌握“代码块”概念 | 带你学《Java面向对象编程》之十二
本节通过多组案例深刻讲解了“{}”在Java世界中扮演的重要角色,简明扼要的介绍了普通代码块、构造块、静态块的异同点。
|
算法 Java
数组排序-触摸算法的门槛 | 带你学《Java面向对象编程》之十八
本节从初学者的角度出发,尝试去编写一个实现数组排序的简单算法,一步一步地调试最终完成,简明生动,通俗易懂。
数组排序-触摸算法的门槛   | 带你学《Java面向对象编程》之十八
|
图形学
一文读懂Unity常用生命周期函数! 超级详细、不服来辩~
零基础学习Unity常用什么周期函数,超级详细的解析,不看会后悔哦~
6733 0
一文读懂Unity常用生命周期函数! 超级详细、不服来辩~
|
编译器 C++
爱上c++的第三天(核心课程):类和对象--对象特性
初始化数据,主要作用于创建对象时为对象的成员属性赋值,构造函数由系统自动调用,无需手动调用。
105 0
爱上c++的第三天(核心课程):类和对象--对象特性
对异常说“我不管” | 带你学《Java面向对象编程》之七十九
前几节向读者讲述了处理异常的办法,本节将介绍将异常抛出给其他类来处理的方法。
对异常说“我不管”   | 带你学《Java面向对象编程》之七十九
教你从实战中领悟继承(上) | 带你学《Java面向对象编程》之四十二
本节将结合学校情景与职场情景进行简单类编写实战,通过符合常识的逻辑抽象体现继承的理念。
|
C++
爱上c++的第二天:类和对象的三大特性-封装
对只写权限,我们可以检测数据的有效性(不能让用户修改程序,即用户不能访问内部程序,以防用户进行非法操作)
121 0

热门文章

最新文章