【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(用户 ...
随机推荐
- 如何在CRM系统中集成ActiveReports最终报表设计器
有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...
- xml存储bug
最近遇到了一个bug,详细情况如下:用linq to xml写xml文件,在加载的时候代码为xDocument.Load(filePath),保存的时候为xDocument.Save(filePath ...
- 每天一个linux命令(60):scp命令
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...
- Jsp练习——连接数据库模拟登录
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- FreeMarker 学习
一.FreeMarker FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页.电子邮件.配置文件.源代码等)的通用工具. 它不是面向最终用户的,而是 ...
- Unity3D Editor模式下批量修改prefab
最经遇到一个需要批量修改已经做好的prefab的问题,查了一些资料最终实现了但是还是不够完美,通过学习也发现unity的编辑器功能还是非常强大的.废话不多说直接上代码: [ExecuteInEditM ...
- SSIS的CheckPoint用法
在SSIS的Package Property中有CheckPoints的属性目录,CheckPoint是SSIS的Failover Feature.通过简单的配置CheckPoint,能够在Packa ...
- UvaOJ10369 - Arctic Network
/* The first line of each test case contains 1 <= S <= 100, the number of satellite channels! ...
- 【原创】.NET读写Excel工具Spire.Xls使用(3)单元格控制
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html .NET读写Excel工具Spire.Xls使用文章 ...
- 使用Nginx配置NodeJs程序(Windows平台)
简介 Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 服务器. Nginx 是由 Igor Sysoev ...