《C#程序设计教程 -李春保》阅读笔记
2018-01-17 19:06
134 查看
《C#程序设计教程 -李春保》阅读笔记
( 需注意程度:红>粗体>下划线,蓝色:我的疑问 )- 老师的引言 [ul] [师]对待一种新语言的关注点 [li]数据类型定义(python不用定义)
- 语法
-
[li]大公司:基础:C语言、数据结构
-
[li]多数据传递:静态类
-
C#:
[li]完全面向对象,设计一个程序就是设计一个或多个类
-
托管代码:
[li]在CLR控制下运行
-
[li]由操作系统直接运行
-
[li]FCL(Framework Class Library):全面的类库,包含大量处理常见的低级编程操作;由命名空间组成见p4-5
-
[li]菜单
-
[li]properties:
-
[li]Main()为程序入口
-
变量的四个理解层面
[li]变量的名称:和该内存空间绑定在一起,对变量名称的操作就是对内存空间的操作,也就是说程序员通过变量来使用计算机的内存空间。从系统的角度看,变量就是程序中的存储单元,它既表示这块内存空间的地址,也表示这块内存空间中存储的数据。
-
值类型
[li]简单类型:[师]类型转换是一定要考虑溢出
-
类
[li]string类:@ 字符串 为严格字符串,其中无转义字符
-
[li]栈:系统管理所有的栈空间
-
[li]拆箱和装箱:即值类型和引用类型的转换
-
string类:
[li]格式化字符串:Format()。有的函数库中就有了,不要再造轮子了
-
[li][师] if{ if..... }else{ if..... }如果有很多判断,写在黑体的if不易读,写在划线的if更易读
-
[师] c的强势在于
[li]指针
-
[li]数组是引用类型,通过一个名称来存取,所有值放在内存的一段连续空间,为了区分不同的值,添加了一些索引或下标。
-
[li](我:对象不是 可寻址连续内存区域 ?)(我:什么是对象,什么是可寻址连续内存区域)。
-
[li]Array类的优化版本,容量或元素个数不像Array是固定的
-
[li]数据类型是指定的
-
[li]数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,但是数组也存在一些不足的地方。比如在数组的两个数据间插入数据也是很麻烦的,还有我们在声明数组的时候,必须同时指明数组的长度,数组的长度过长,会造成内存浪费,数组和长度过短,会造成数据溢出的错误。这样如果在声明数组时我们并不清楚数组的长度,就变的很麻烦了。C#中最先提供了ArrayList对象来克服这些缺点
-
[li][师]:面向对象中,有20%的知识常用,就像搭积木,你只需要搞定用的东西
-
[li]不会在栈上分配空间
-
[li]也不开辟新的内存区域
-
[li]浅复制:共享除String的所有引用成员实例
-
继承
[li]为了对现实世界中的层次结构进行模型化,面向对象的程序设计技术引入了继承的概念
-
[li]多态性是指发出同样的消息(如方法调用)被不同类型的对象接收时可能导致不同行为
-
[li]重载:同一个类,同一个方法的多种形式,签名不同
-
[li]一个类不与具体的事物相联系,而是表达一种抽象的概念,仅仅作为其派生类的一个基类
-
[li]接口是类之间交互内容的一个抽象,把类之间需要交互的内容抽象出来定义成接口,可以更好地控制类之间的逻辑交互。接口最适合为不相关的类提供通用的功能。一个接口可以被多个类继承,在这些类中实现该接口的成员,这样接口就起到了提供统一界面的作用。
-
一个接口成员确定哪一个类的成员呢?假设类C实现了接口Ia的一个接口fun,此时fun的映射过程如下:
[li]①如果类C中存在一个显式成员实现,它与Ia的接口成员的fun相应,则由它来实现fun成员。
-
[li]Array.Sort():使用每个元素的ICompareable接口实现对整个ArrayList中元素的排序
-
[li]熟练掌握各个控件的属性设置和方法调用是采用C#语言设计界面友好的应用程序的基础(黑体中的两点即为主要学习内容)
-
[li]属性Checked:获取或设置一个布尔值
-
作用
[li]做容器
-
[li]Items的属性和方法
-
[li]属性SelectionMode:值MultiExtended,为允许搭配shift或ctrl键的功能
-
[li]属性Interval:两个定时器事件之间的时间间隔
-
[li]通过静态字段传递数据
-
[li]在Windows窗体创建
-
菜单:
分类
[li]下拉式菜单:MenuStrip控件
-
[li]OpenFileDialog:打开文件:返回值为DialogResult
-
[li]专门负责管理图片
-
[li](问题:P271,方法和事件到底有什么区别,为什么分开说)
-
[li]可包含多项,由Items集合表示,每一项就是一个ListViewItem对象,而每一个ListViewItem由其SubItems集合表示
-
[li]输入:文件中的数据读取到内存中
-
文件夹的操作:
[li]Directory类:均为静态方法
-
[li]File类:均为静态方法
相关文章推荐
- 大师兄Smarty教程-阅读笔记
- Caffe官方教程阅读笔记
- 【Spring】官网教程阅读笔记(二):消费一个RESTweb服务
- 【Spring】官网教程阅读笔记(四):使用LDAP对用户鉴权
- Python 教程阅读笔记(十):标准库一瞥(续)
- Python 教程阅读笔记(一):使用解释器
- GRE&GMAT阅读难句教程笔记(1)
- 【Spring】官网教程阅读笔记(一):创建一个符合REST规范的web服务
- Python 教程阅读笔记(三):更多控制流工具
- 【Spring】官网教程阅读笔记(三):Spring中使用JDBC访问关系数据
- Python 教程阅读笔记(四):数据结构
- Python 教程阅读笔记(七):错误和异常
- Python 教程阅读笔记(五):模块
- Python 教程阅读笔记(一):使用解释器
- Python 教程阅读笔记(八):类
- Python 教程阅读笔记(九):标准库一瞥
- 【Spring】官网教程阅读笔记(五):Redis消息
- Cocos2d-x高级开发教程阅读笔记
- Python Numpy 教程 - 阅读笔记
- 【Spring】官网教程阅读笔记(六):访问Twitter