摘要:
接口的本质是一个功能的提供者与服务的调用者(消费者)之间的一个契约(contract) (协议、标准) 所以接口的所有成员必须是public的 举例1 可迭代接口 Foreach遍历的唯一要求是遍历对象是“可迭代的”,这可以视作一个调用者需求 提供者必须满足这个需求,遍历对象与变量操作之间通过接口达 阅读全文
摘要:
接口与抽象类是所有高阶面向对象的起点,是学习设计模式的前置条件 必须有实践基础之后,才能真正掌握算法、设计模式 设计模式的基础 solid五大设计原则(待续) 1.单一职责原则 single responsibility principle 2.开放-关闭原则 Open-close principl 阅读全文
摘要:
重写override 子类中重新定义父类中已有的方法 重写语法 需要在要重写的父类方法添加一个virtual修饰符(虚方法) 在子类中的同名方法添加一个override修饰符 子类中添加新的成员,是继承中对父类的横向扩展 重写不添加新成员,而是增加已有成员的新版本,可以看着对父类的纵向扩展 但使用不 阅读全文
摘要:
class是一种引用类型 每一个类是一种自定义的引用类型 类的构造器 详见方法章节-构造器方法 在C#中,堆内存中的一个实例对象没有被任何变量访问时,会自动被垃圾收集器收集处理 扩展内容 类的析构器(待续) 如果类的对象调用了一些系统底层的资源,垃圾收集器自动处理垃圾时,不会释放这部分系统资源,此时 阅读全文
摘要:
自定义事件的完整声明 前言: 编程规范:声明的委托类型用EventHandler作为后缀 编程规范:用于传递事件数据的类名,用EnventArgs作为后缀 委托、事件拥有者(customer)、事件数据传递类要配合在一起使用,所以他们的访问基本必须的一样的。 step1.声明事件封装的委托类型 st 阅读全文
摘要:
初步了解事件 事件的自然语意:能够发生的事,能以“发生”为谓语的东西 C#中定义:一个对象或类的成员,使这个对象或类具备通知能力 “响铃这个事件,使手机具备了通知关注这个手机的人的能力” 在事件发生时,关注者通过收到的通知,能得到和事件相关的一些信息(称作事件参数) 关注者会去检查收到的事件信息(事 阅读全文
摘要:
示例:回调方法 (也称作好莱坞方法) 演员去面试,给导演留了名片 导演说如果选中他,会给他打电话的 using System; namespace CallBack { class Program { static void Main(string[] args) { //创建工厂实例 Produc 阅读全文
摘要:
“幻想:如果能有一种能把方法当参数的方法就好了” 一、什么是委托 委托源自C、C++中的函数指针 1.C语言中的函数指针 (1)函数的直接调用 先准备好一个加法函数,一个减法函数 可以通过函数名调用这两个函数,这种调用方法称作直接调用 (2)函数指针的声明、间接调用 先按下图中的方法声明一个函数指针 阅读全文
摘要:
一、值参数(传值参数、值传递) 指参数的种类为值参数,而非参数数据类型为值类型 1.值类型的传值参数 类似一个新声明的局部变量,或传进来的实参的一个副本 可以在方法体内重现赋值,但其在方法体内被赋值时,不会影响传进来的本体 2.引用类型的传值参数 引用类型变量存储的是实例在堆内存中的地址 (1)在方 阅读全文
摘要:
一、索引器[ ]概述 使一个对象可以像数组一样用方括号[ ]去访问其元素 ex:字典的声明 1.索引器的声明 首先像上文那样声明一个字典Dictionary< , > 在VS中输入indexer,然后敲两下tab 就能得到:(按下tab可以跳到下一个可编辑项上) 第一个类型参数为返回值的类型,第二个 阅读全文