C#零基础入门04:打老鼠初级之枚举、重构、事件处理器
一:为界面加入“开始”、“暂停”、“停止”
经过上节课程我们的交互的过程,我们的程序增加了用户友好度,同时也可以记录更为详尽的成绩了。但是我们仍然发现有很多地方需要值得改进(或许你还发现了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按钮事件现在就做了解,那么我们就该知道这个概念。那么,什么叫给事件变量赋值呢?其实我们已经见过了这样的代码了:
在我们这个游戏当中,我们当前的代码中:
就是一个事件处理器,它被赋值给Button的Click事件变量的语句是VS自动给我们生成在了Form1.Designer.cs中了,如下:
this.buttonStart.Click += new System.EventHandler(this.buttonStart_Click);
我们在今天的编码中,并没有编写如上的语句,是因为VS做好事,帮我们写了这样的语句,但是,如果我们一定要深究,为什么我Click之后,它就会自动执行游戏开始的代码呢?OK,看一看Form1.Designer.cs,就什么都知道了。
微信扫一扫,关注最课程(www.zuikc.com),获取更多我的文章,获取软件开发每日一练
C#零基础入门04:打老鼠初级之枚举、重构、事件处理器的更多相关文章
- 094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 02 static关键字 04 static关键字(续)
094 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 04 使用包进行类管理(2)——导入包
090 01 Android 零基础入门 02 Java面向对象 02 Java封装 01 封装的实现 03 # 088 01 Android 零基础入门 02 Java面向对象 02 Java封装 ...
- 085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用
085 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 02 构造方法介绍 04 构造方法调用 本文知识点:构造方法调用 说明:因为时间紧张,本人写博客过程中只是 ...
- 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象
079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...
- 072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法
072 01 Android 零基础入门 01 Java基础语法 09 综合案例-数组移位 04 综合案例-数组移位-在指定位置处插入数据方法 本文知识点:综合案例-数组移位-在指定位置处插入数据方法 ...
- 057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和
057 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 04 案例:求整型数组的数组元素的元素值累加和 本文知识点:求整型数组的数组元素的元素值累加和 案例:求整型数 ...
- 042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用——循环输出英文字母
042 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 04 案例演示while循环的使用--循环输出英文字母 本文知识点:案例演示while循环的使用2 ...
- 038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结
038 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 05 案例演示switch结构-星期的表示案例以及总结 本文知识点:案例演示switch结构并对sw ...
- 037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构
037 01 Android 零基础入门 01 Java基础语法 04 Java流程控制之选择结构 04 switch结构 本文知识点:Java中的switch结构 选择结构分类 选择结构只有如下2种 ...
随机推荐
- HttpClient-----待补充
1.简介 HTTP 协议可能是现在 Internet 上使用得最多.最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源.虽然在 JDK 的 java.net 包中 ...
- Element-ui el-cascader不触发prop?
html代码: <el-form label-position="right" label-width="100px" :model="form ...
- java实现最小堆
1.堆:通常通过二叉堆,实为二叉树的一种,分为最小堆和最大堆,具有以下性质: 任意节点小于它的所有后裔,最小元在堆的根上. 堆总是一棵完全树 将根节点最大的堆叫做最大堆或大根堆,根节点最小的堆叫做最小 ...
- 009.MySQL-Keepalived搭配脚本03
vim /etc/keepalived/check_MySQL.sh #vim #!/bin/bash MYSQL=/usr/local/mysql/bin/mysql MYSQL_HOST=loca ...
- java的线程安全、单例模式、JVM内存结构等知识学习和整理
知其然,不知其所以然 !在技术的海洋里,前路漫漫,我一直在迷失着自我. 欢迎访问我的csdn博客,我们一同成长! "不管做什么,只要坚持下去就会看到不一样!在路上,不卑不亢!" 博 ...
- liunx的命令大全
- supervisor Error: Another program is already listening
Error: Another program is already listening on a port that one of our HTTP servers is configured to ...
- Ubuntu 18.04 更新源
[原因] 使用国外的源,在更新软件的时候会很慢,换成国内的源会快很多. [命令] 1.备份源文件 sudo cp /etc/apt/sources.list /etc/apt/sources.list ...
- BZOJ.5312.冒险(线段树)
题目链接 \(Description\) 维护一个序列,支持区间and/or一个数.区间查询最大值. \(Solution\) 维护区间最大值?好像没什么用,修改的时候和暴力差不多. 我们发现有时候区 ...
- Xtreme9.0 - Taco Stand 数学
Taco Stand 题目连接: https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/taco-stand Des ...