【C#】第3章学习要点(一)--整体把握
分类:C#、VS2015
创建日期:2016-06-18
使用教材:(十二五国家级规划教材)《C#程序设计及应用教程》(第3版)
一、使用别人已经设计好的类简化你的代码编写工作量
当让你去处理一堆乱七八糟的事情时,要把它弄的有条理,首先需要“先把它分成几大部分”(划分为不同的“命名空间”或者“包”),然后再把每一部分进行“分类”(每个命名空间下可能有多个类),最后再一件一件地去完成(实现各个类的功能)。
可是,你如何用代码去描述这些“分类”呢?总得先区分出来你是不是在描述分类吧,这就是class关键字的用途。当然,你还得给每个分类起个专门的名字,否则你仍然区分不出来描述的是哪一类的东西。
分类后,就可以通过代码去描述类中需要实现的功能了。
总体来说,面向对象程序设计的基本处理方式就是:对于有先后关联的在一个类中就能完成的业务,就在指定的类中按顺序一件一件地通过代码实现(结构化程序设计)。对于没有先后关联的业务,就安排多个人(多个类中的多个方法)同时去做(多线程、多进程)。
谁安排?是你。谁负责去执行你安排的任务?是操作系统。
二、会观察.NET框架包含哪些命名空间
.NET框架已经帮你定义了上万个类来帮助你简化代码编写工作量,这些类在安装VS2015时已经全部安装到了你的机器上并将其分配到了不同的dll文件中,在每个dll文件中,又将所包含的类分配到了不同的命名空间下,你所做的大部分事情就是利用using指令引用你知道的命名空间(至于在哪个dll文件中你不用去考虑,.NET框架会自动帮你做这件事)。所以,你得先了解.NET框架下有哪些命名空间。
添加对命名空间的引用后,你就可以直接使用命名空间下包含的这些类实现你要处理的业务逻辑了。
了解.NET框架下有哪些命名空间的办法如下:
(1)运行VS2015,新建项目,选择一个模板,比如选择控制台应用程序。
(2)选择主菜单的【视图】->【对象浏览器】,此时你就会看到控制台应用程序中你可以直接引用的命名空间。
例如,展开mscorlib下的System命名空间,你就会看到Console类,单击它,就会看到该类中包含的各种方法,单击某个方法,你就会看到它的解释。如下图所示:

一定要学会用这种办法找到你需要的东西,看到了吗?教材中告诉你的仅仅是其中最常用的几个类和方法,实际项目中用到的可远远不止这些。只有这样,你才能真正做到举一反三,而不是别人教一个你会一个。
三、学习开源架构开阔你的思路
除了.NET框架内置的类以外,网上还有相当多的开源架构(里面也包含很多类)设计的都很漂亮,分析这些架构的源代码,学习这些架构的基本设计思路,逐步开阔你的视野,然后把它变成你自己的思想才是正道,而不是直接把人家的源程序拿来用于项目。原因很简单,不论是哪个公司,开源的东西都是经过开发者精心“过滤”的,而被过滤掉的恰恰是项目中最关键的部分--“性能”和高级功能。换句话说,人家只是想通过开源的代码告诉你基本实现思路,说到底也只是“请君入瓮”的一种营销策略而已,如果所有核心代码都给你开源了,那人家的公司岂不是早就被那些只会盗取别人成果的无良公司吃掉了,呵呵。
IBM、微软、HP、苹果、谷歌、……,所有公司都是这么干的,既有开源的东西(不要钱,但是功能和性能都有限制),同时也有不开源的东西(要钱,所有功能都有,性能也没有限制)。所以,别为了吹捧自己的观点就只强调哪家公司的某一个方面,为了攻击别人的观点就只强调哪家公司的另一个方面,见到网上整天争来争去哪个好那个不好,说到底不还都是在讨论人家美国公司给你的东西吗。
不管怎样折腾,直接把人家开源的源程序拿来用于项目成果,充其量也只是一个跟屁虫,区别仅仅是跟的是谁的屁股。
记住:“开源”也好,“免费”也好,都是别人给你尝尝味道的糖,是供你学习用的,别天真的把它拿来当饭吃。或者说,学习期间,都了解了解,这样在实际用到时你才能知道目标在哪。只知其一,不知其二,你自己说的再天花乱坠,别人也不会认同你的看法。
四、本章学习要点
1、学会自己定义类(class)
2、学会自己定义结构(struct)
3、掌握属性的基本用法
4、掌握方法的基本用法
5、理解事件的基本概念和基本用法
6、理解类的封装、继承、多态性
7、理解如何将图形作为对象(高级内容)
8、掌握日期和时间处理的基本用法
9、掌握随机数的基本用法
10、掌握定时器的基本用法
11、掌握基本数学运算的基本用法
五、本章示例截图
本章源程序(VS2015版)的示例截图如下:

补充例子中的部分运行截图如下(帮助你理解如何利用继承实现复杂功能):

【C#】第3章学习要点(一)--整体把握的更多相关文章
- 【C#】1.1 第1章学习要点
分类:C#.VS2015 创建日期:2016-06-14 教材:十二五国家级规划教材<C#程序设计及应用教程>(第3版) 一.配套源程序(VS2015版)的运行截图 VS2015版的配套源 ...
- 【C#】第3章学习要点(二)自定义类和结构
分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.要点概述 别人提供的类都是为了简化你的工作量用的,可是 ...
- 【C#】第2章学习要点
分类:C#.VS2015 创建日期:2016-06-15 教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.本章要点 C#数据类型分两大类:值类型.引用类型. 值类型 ...
- 【C#】第3章学习要点(三)--常用类和结构的用法
分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.DateTime结构和TimeSpan结构 DateT ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
- 《Linux内核设计与实现》第一、二章学习笔记
<Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡 学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...
- 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳
<Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...
- apue第七章学习总结
apue第七章学习总结 1.main函数 程序是如何执行有关的c程序的? C程序总是从main函数开始执行.main函数的原型是 int main(int argc,char *argv[]); 其中 ...
- apue第六章学习总结
apue第六章学习总结 1.关于阴影文件与口令 在口令文件当中,常见的字段有(以root为例): root(用户名):x(加密口令):0(uid):0(gid):root(注释字段):/root(用户 ...
随机推荐
- 生成格式化的json
public static ContentResult returnJson(object obj) { var content = new ContentResult() { Content = J ...
- 这里有个坑---[NotMapped]不要忘了加
这里有个坑,我们定义实体的时候如果使用了在数据库没有的字段记得加[NotMapped]---------每一个遇到的坑总结后都是一比财富. 在项目中我们一般会使用EF等ORM框架来为我们服务,在ORM ...
- redis常用命令、常见错误、配置技巧等分享
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/117.html?1455860236 1. redis查看当前所有的key ...
- DDD~领域层
回到目录 再论Domain与Infrastructure 在面向领域的设计中,领域层(Domain)实现上是位于最底层的,其它层有对它的引用,包括基础设施层(Infrastructure)也是去引用领 ...
- fir.im Weekly - 给女朋友的 iOS 开发教程
俗话说:技多不压身,功到自然成.本期 fir.im Weekly 收集的热度资源,大部分关于Android.iOS 开发工具和源码,还有一些有关设计的 Tips ,希望对你有帮助. 给女朋友的 iOS ...
- exe文件添加为服务
首先,去下载一个叫rktools.exe的工具(我提供个下载地址Windows 2003 Resource Kits),下载完后安装该资源包,里面有个instsrv.exe和srvany.exe的工具 ...
- Index Seek和Index Scan的区别
Index Seek是Sql Server执行查询语句时利用建立的索引进行查找,索引是B树结构,Sql Server先查找索引树的根节点,一级一级向下查找,在查找到相应叶子节点后,取出叶子节点的数据. ...
- CSS3新技能学习笔记
说来惭愧自认为对css了解,但在项目中却很少有正确的使用css,如果面向对象的css吧,其实也不是不想用而是css天生就是面向对象的,高度可重用,但是如果把每个都单独提取,难免会有过多的class以及 ...
- zmNgFrameWork 架构升级ng1.5和md5静态资源缓存方案【angular1.x】
前言: 在我前面的博客,angular项目总结——angular + browserify + gulp + bower + less 架构分享 把我开发angular的架构进行了分享,并上传到了g ...
- Csstyle - 创建简洁、可维护强的 CSS 样式
Csstyle 是一种现代的方式,用于制作精美的可维护样式表.这个 Csstyle 方法使用 SASS 混入,使你的 CSS 更具可读性和语义,并为你生成选择器,自动处理嵌套等事情. Csstyle ...