【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(用户 ...
随机推荐
- UWP入门教程1——UWP的前世今生
目录 引言 设备族群 UI 和通用输入模式 通用控件和布局面板 工具 自适应扩展 通用输入处理 引言 在本篇文章中,可以掌握以下知识: 设备族群,如何决定目标设备 新的UI控件和新面板帮助你适应不同的 ...
- [HIMCM暑期班]第4课: 扑克牌问题
假设跟你玩这样一个游戏: 拿一副52张牌的扑克,洗均匀.每次展示一张牌,如果是红心或者方块,你就赢10块钱:如果是黑桃或者草花,你就输10块钱.你可以选择在任何时候终止此游戏.问如何确保利益最大化? ...
- Mysql日常开发注意要点
1.MySQL存储引擎介绍 MyISAM:低版本MySQL默认的MySQL插件式存储引擎,存储文件易损坏,不支持事务.InnoDB:目前默认的MySQL存储引擎,用于事务处理应用程序,具有众多特性,包 ...
- Andrew Ng机器学习公开课笔记 -- Regularization and Model Selection
网易公开课,第10,11课 notes,http://cs229.stanford.edu/notes/cs229-notes5.pdf Model Selection 首先需要解决的问题是,模型 ...
- 缓存篇(Cache)~第二回 使用static静态成员实现服务器端缓存(导航面包屑)~续
返回目录 在写完首篇cache文章后,有些朋友给我来信,希望可以使用JS的方法来实现这个导航功能,所以,才有了这篇文章,JS与C#不同,它虽然有引用类型,但它不具备一些引用类型的特性,如它的方法参数为 ...
- PHPer书单
想提升自己,还得多看书!多看书!多看书! 下面是我收集到的一些PHP程序员应该看得书单及在线教程,自己也没有全部看完.共勉吧! Github地址:https://github.com/52fhy/ph ...
- Liferay7 BPM门户开发之47: 集成Activiti待办已办任务清单和流程启动
首先增加两个Portlet,分别用于待办处理.流程启动.待办是别人发起的流程,流到自己这里的流程:流程启动用于发起新的流程. 程序文件放置于 在ACtivit中待办概念分两种,1是指派给你的,专门的指 ...
- python socket 学习
Python在网络通讯方面功能强大,今天学习一下Socket通讯的基本方式,分别是UDP通讯和TCP通讯. UDP通讯 upd 服务端 #!/usr/bin/env python # -*- codi ...
- SSIS Component的ValidateExternalMetadata属性
ValidateExternalMetadata Property Indicates whether the component validates its column metadata agai ...
- js高程读书笔记(1-3章)
一.js简介 js是一种专为与网页交互而设计的脚本语言,由以下三个不同的部分组成: 1.ECMAScript,由ECMA-262(它规定了语言的这些组成部分:语法,类型,语句,关键字,保留字,操作符, ...