随笔- 38
文章- 0
评论- 1
阅读-
3046
随笔分类 - 刘铁猛C#教程学习笔记
刘铁猛C#学习笔记21 反射与依赖注入
摘要:反射 对于一个现有对象,能够在不使用new操作符、不知道其具体静态类型的情况下,创建出一个同类型的对象,还能访问这个复制品对象拥有的各个成员。 相当于进一步的解耦,可以不使用new操作符,就没有类型的依赖关系 这样的耦合关系甚至可以弱到忽略不计 反射在.NET和JAVA中非常重要 为什么需要反射 很
阅读全文
刘铁猛C#学习笔记20 接口隔离与显式实现
摘要:接口的本质是一个功能的提供者与服务的调用者(消费者)之间的一个契约(contract) (协议、标准) 所以接口的所有成员必须是public的 举例1 可迭代接口 Foreach遍历的唯一要求是遍历对象是“可迭代的”,这可以视作一个调用者需求 提供者必须满足这个需求,遍历对象与变量操作之间通过接口达
阅读全文
刘铁猛C#学习笔记19 抽象类、接口与SOLID五大原则
摘要:接口与抽象类是所有高阶面向对象的起点,是学习设计模式的前置条件 必须有实践基础之后,才能真正掌握算法、设计模式 设计模式的基础 solid五大设计原则(待续) 1.单一职责原则 single responsibility principle 2.开放-关闭原则 Open-close principl
阅读全文
刘铁猛C#学习笔记18 重写与多态
摘要:重写override 子类中重新定义父类中已有的方法 重写语法 需要在要重写的父类方法添加一个virtual修饰符(虚方法) 在子类中的同名方法添加一个override修饰符 子类中添加新的成员,是继承中对父类的横向扩展 重写不添加新成员,而是增加已有成员的新版本,可以看着对父类的纵向扩展 但使用不
阅读全文
刘铁猛C#学习笔记17 类Class详解
摘要:class是一种引用类型 每一个类是一种自定义的引用类型 类的构造器 详见方法章节-构造器方法 在C#中,堆内存中的一个实例对象没有被任何变量访问时,会自动被垃圾收集器收集处理 扩展内容 类的析构器(待续) 如果类的对象调用了一些系统底层的资源,垃圾收集器自动处理垃圾时,不会释放这部分系统资源,此时
阅读全文
刘铁猛C#学习笔记16 自定义事件
摘要:自定义事件的完整声明 前言: 编程规范:声明的委托类型用EventHandler作为后缀 编程规范:用于传递事件数据的类名,用EnventArgs作为后缀 委托、事件拥有者(customer)、事件数据传递类要配合在一起使用,所以他们的访问基本必须的一样的。 step1.声明事件封装的委托类型 st
阅读全文
刘铁猛C#学习笔记15 事件的初步了解
摘要:初步了解事件 事件的自然语意:能够发生的事,能以“发生”为谓语的东西 C#中定义:一个对象或类的成员,使这个对象或类具备通知能力 “响铃这个事件,使手机具备了通知关注这个手机的人的能力” 在事件发生时,关注者通过收到的通知,能得到和事件相关的一些信息(称作事件参数) 关注者会去检查收到的事件信息(事
阅读全文
刘铁猛C#学习笔记14 委托2-回调方法、委托高级使用
摘要:示例:回调方法 (也称作好莱坞方法) 演员去面试,给导演留了名片 导演说如果选中他,会给他打电话的 using System; namespace CallBack { class Program { static void Main(string[] args) { //创建工厂实例 Produc
阅读全文
刘铁猛C#学习笔记13 委托1
摘要:“幻想:如果能有一种能把方法当参数的方法就好了” 一、什么是委托 委托源自C、C++中的函数指针 1.C语言中的函数指针 (1)函数的直接调用 先准备好一个加法函数,一个减法函数 可以通过函数名调用这两个函数,这种调用方法称作直接调用 (2)函数指针的声明、间接调用 先按下图中的方法声明一个函数指针
阅读全文
刘铁猛C#学习笔记12 参数种类详解
摘要:一、值参数(传值参数、值传递) 指参数的种类为值参数,而非参数数据类型为值类型 1.值类型的传值参数 类似一个新声明的局部变量,或传进来的实参的一个副本 可以在方法体内重现赋值,但其在方法体内被赋值时,不会影响传进来的本体 2.引用类型的传值参数 引用类型变量存储的是实例在堆内存中的地址 (1)在方
阅读全文
刘铁猛C#学习笔记11 索引器、常量
摘要:一、索引器[ ]概述 使一个对象可以像数组一样用方括号[ ]去访问其元素 ex:字典的声明 1.索引器的声明 首先像上文那样声明一个字典Dictionary< , > 在VS中输入indexer,然后敲两下tab 就能得到:(按下tab可以跳到下一个可编辑项上) 第一个类型参数为返回值的类型,第二个
阅读全文
刘铁猛C#学习笔记10 字段、属性
摘要:这四种东西都是用来表达数据的 一、字段(成员变量) 曾用名:成员变量 是为一个对象或类型存储数据的变量,区别于方法体中的局部变量 多个字段组合起来可以表示对象当前的状态 起源:C语言中结构体的成员变量 一个对象占用的内存空间会被分配给各个字段 1.实例字段和静态字段 可以分为实例字段和静态字段 类比
阅读全文
刘铁猛C#学习笔记9 表达式、语句2
摘要:1.循环语句 C#中有四种循环 while循环,do-while循环,for计数循环,foreach遍历循环 (1)while循环 while() 括号内写循环条件,一个bool类型表达式 之后写一个嵌入式语句作为循环体 (2)do-while循环 先执行一次,在判断循环条件,所以循环体至少会执行一
阅读全文
刘铁猛C#学习笔记8 表达式、语句1
摘要:表达式 1.表达式的定义 通用定义:一种专门用来求值的语法实体 C#中定义:由一个或多个操作数,零个或多个操作符,功能是求值,求值的结果可能是四类 Single value、object、method、namespace (说明至少要有一个操作数,但不一定要有操作符) C#中表达式值的类型: (1)
阅读全文
刘铁猛C#学习笔记7 操作符详解3
摘要:1. 强制类型转换操作符 强制类型转换操作符() int x; string s = (String)x; 例1: string str1 = Console.ReadLine(); string str2 = Console.ReadLine(); //使用ReadLine读取到的是两个strin
阅读全文
刘铁猛C#学习笔记6 操作符详解2
摘要:————— 基本操作符 ——————— 1.checked 与 unchecked 用于检测一个值在内存中是否溢出 Checked:告诉编译器要检查溢出 Unchecked:告诉编译器不用检查溢出 使用在值变量前,若内存溢出,则编译器会出现以下弹窗 ex:try与catch(待补充) Uncheck
阅读全文
刘铁猛C#学习笔记5 操作符详解1
摘要:一.操作符的优先级 此表格中从上往下操作符优先级依次降低,上面的操作符优先级更高,更先运算 提升优先级的方法 可以通过加圆括号的方式,提高表达式的运算优先级 圆括号可嵌套 同优先级的运算顺序 同一行操作符运算优先级相同,优先级相同时大部分按照从左向右的顺序依次运算 但带有赋值功能的操作符固定为最晚运
阅读全文
刘铁猛C#学习笔记4 方法详解
摘要:方法的由来 C++中用两个冒号访问命名空间 如:std::cout << "Hello,World!"; “方法”是一个面向对象的概念,当一个函数作为类的成员出现时,就被称之为方法 方法也可以称作“成员函数” C++中对类的声明放在.h文件中,而类的定义放在.cpp文件中 c#中类的声明和定义是放在
阅读全文
刘铁猛C#学习笔记3 类型、变量、对象、内存
摘要:一、C#中的类型 二、类型所能表示的数的范围 其中S开头代表带符号(用一位来存储符号),U开头代表无符号 8位 = 1字节byte 三、程序的静态与动态: 静态-尚未运行,在编译器中编译 动态-正在运行、调试 程序不运行时在硬盘(外存)里,称作静态的 运行时装载到内存里,称作动态的 四、程序对内存的
阅读全文
刘铁猛C#学习笔记2 类与类的成员
摘要:一、属性 功能:1、储存数据 2、组合起来表示对象的状态(如飞机的【速度】、【飞行高度】) 二、方法 由C语言的函数进化而来 用来做事的 【程序的核心是 数据结构+算法 ,在此属性作为数据结构代表,方法作为算法代表】 三、事件 C#的特有机制 在发生某件事时通知其他类或对象 在VS中,对一个类按下F
阅读全文