分类: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章学习要点(一)--整体把握的更多相关文章

  1. 【C#】1.1 第1章学习要点

    分类:C#.VS2015 创建日期:2016-06-14 教材:十二五国家级规划教材<C#程序设计及应用教程>(第3版) 一.配套源程序(VS2015版)的运行截图 VS2015版的配套源 ...

  2. 【C#】第3章学习要点(二)自定义类和结构

    分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.要点概述 别人提供的类都是为了简化你的工作量用的,可是 ...

  3. 【C#】第2章学习要点

    分类:C#.VS2015 创建日期:2016-06-15 教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.本章要点 C#数据类型分两大类:值类型.引用类型. 值类型 ...

  4. 【C#】第3章学习要点(三)--常用类和结构的用法

    分类:C#.VS2015 创建日期:2016-06-19 使用教材:(十二五国家级规划教材)<C#程序设计及应用教程>(第3版) 一.DateTime结构和TimeSpan结构 DateT ...

  5. 20172327 2018-2019-1 《第一行代码Android》第一章学习总结

    学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...

  6. 《Linux内核设计与实现》第一、二章学习笔记

    <Linux内核设计与实现>第一.二章学习笔记 姓名:王玮怡  学号:20135116 第一章 Linux内核简介 一.关于Unix ——一个支持抢占式多任务.多线程.虚拟内存.换页.动态 ...

  7. 《Linux内核设计与实现》课本第五章学习笔记——20135203齐岳

    <Linux内核设计与实现>课本第五章学习笔记 By20135203齐岳 与内核通信 用户空间进程和硬件设备之间通过系统调用来交互,其主要作用有三个. 为用户空间提供了硬件的抽象接口. 保 ...

  8. apue第七章学习总结

    apue第七章学习总结 1.main函数 程序是如何执行有关的c程序的? C程序总是从main函数开始执行.main函数的原型是 int main(int argc,char *argv[]); 其中 ...

  9. apue第六章学习总结

    apue第六章学习总结 1.关于阴影文件与口令 在口令文件当中,常见的字段有(以root为例): root(用户名):x(加密口令):0(uid):0(gid):root(注释字段):/root(用户 ...

随机推荐

  1. 浅析SQL Server实现分布式事务的两阶段提交协议2PC

    不久之前团队有个新人问我一个很重要的web服务接口如何保证事务的问题.因为涉及到跨库事务,当时我只是回答目前我们的SOA框架都不支持跨库事务.然后就问到了数据库跨库事务是如何实现的,我只能凭印象含糊回 ...

  2. 【SVN多用户开发】代码冲突&解决办法

    SVN是一款集中式的代码存储工具,可以帮助多个用户协同开发同一应用程序. 但是SVN不能完全代替人工操作,有时也需要程序员自己进行沟通确认有效的代码. 下面就简单的看一下,常见的代码冲突以及解决方法. ...

  3. salesforce 零基础学习(三十七) DML及Database方法简单描述

    在apex中通过soql查询可以使用两种方式,使用DML语句或者使用Database的方法. 使用DML语句和使用Database类的方法对于我们来说用的都很多,并且都很常见.对于数据库常见的操作:增 ...

  4. salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解

    建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema Builder查看表结构以及多表之间的关联关系,可以登录后点击setup在左侧搜索框输入schema ...

  5. DateUtil

    //有些地方需要修改 import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDate ...

  6. KnockoutJS 3.X API 第三章 计算监控属性(1) 使用计算监控属性

    计算监控属性(Computed Observables) 如果你有一个监控属性firstName,和另一个lastName,你要显示的全名?可以使用计算监控属性来实现-它依赖于一个或多个其他监控属性, ...

  7. emmet插件学习,练习中遇到一些问题

    emmet插件学习:帮助提高敲代码效率的插件 参考文献:Emmet(Zen coding)HTML代码使用技巧七则http://www.wzsky.net/html/Website/htmlcss/1 ...

  8. python导入模块和包的使用

    做项目的时候经常会要求做到模块化管理,即同样功能的代码放到同一个文件夹下,以便于方便管理,相信很多人对模块的引用都模糊不清,今天鄙人在这里就总结下. 一.模块导入的使用 在同一个文件夹下有两个文件分别 ...

  9. 关于移动开发的一些想法和认识--Android和iOS

    微信公众账号很久没更新了,发一点自己最近的想法和内容. 之前和朋友做了一个项目,现在在跟一些风投,大公司里面的几家在谈合作和投资的事宜,从这个过程中也了解到了一些信息. 关于移动平台的应用开发与游戏开 ...

  10. Comet服务器推送与SignalR

        HTTP协议是一个典型的Request/Response协议,是基于TCP/IP之上的一个应用层协议,该协议最典型的特点就是无状态且需要客户端发起Request服务端才能进行Response, ...