学C#了吗
文章平均质量分 50
little__rookie
这个作者很懒,什么都没留下…
展开
-
31 泛型,partial类,枚举,结构体
泛型:正交性:泛型和其它的编程实体都有正交点,导致泛型对编程的影响广泛而深刻。原创 2022-04-25 10:13:17 · 138 阅读 · 0 评论 -
30_接口隔离,反射,特性,依赖注入
接口隔离原则:如果存在具有完全覆盖关系的多个接口(胖瘦接口),会出现这多个接口之间不兼容情况,所以使用接口继承方式解决设计失误:把太多的功能包含在一个接口里面● 这就导致实现该接口的类违反了单一职责原则○ 单一职责原则:一个类只做一件(或一组相关的)事● 接口隔离原则是从服务调用者的角度来看接口类型,单一职责原则是从服务提供者的角度来看接口类型● 解决方案就是把胖接口拆成单一的小接口(把本质不同的功能隔离开)显式实现接口:显式实现接口时,只有该实例被作为该接口类型进行转换时才能调用该接口的方原创 2022-04-22 20:20:36 · 131 阅读 · 0 评论 -
29 接口、依赖反转、单元测试
abstract 中的抽象方法只规定了不能是 private 的,而接口中的“抽象方法”只能是 public 的。这样的成员访问级别就决定了接口的本质:接口是服务消费者和服务提供者之间的契约。既然是契约,那就必须是透明的,对双方都是可见的。接口是纯虚方法,抽象方法稍微具体一些(根据上图轮廓虚线的程度)谁依赖谁,便用箭头指向谁,使用接口时,依赖者画在了下方,箭头方向反转,称为依赖反转(虚函数也有类似效果)单位测试创建用于测试的命名空间namespace watch_learn_CSharp.原创 2022-04-21 16:25:13 · 220 阅读 · 0 评论 -
28 抽象类与开闭原则
接口有点类似于抽象类(当这个类的方法全部都是 纯虚/抽象 函数)抽象类的函数默认为public abstract使用接口实现时 class Demo_Abstract { public void test() { Demo28_Vehecle demo28_Vehecle = new Demo28_Car(); demo28_Vehecle.Run(); } } abs.原创 2022-04-19 16:41:11 · 114 阅读 · 0 评论 -
26 多态
Override 重写:含义:永远调用的是实例的最新版本(属性也可以重写)可见:只有对子类可见的父类成员可以重写,具体说就是 protected 和 public。例如子类能继承父类 private 的成员,但无法访问,即不可见、不可重写。class Demo_Polymorphisms { public void test() { Demo29_Vehicle vehicle = new Demo29_RaceCar();原创 2022-04-19 15:00:08 · 60 阅读 · 0 评论 -
24-26 类的声明、继承、访问和控制
c++中类名不等于定义(可以参考友元模板成员函数的用法,笑)静态构造器用于初始化类的静态成员class 前面没有任何修饰符等于加了 internal。● internal:仅在自身程序集(Assembly)里面可以访问● public:从 Assembly 暴露出去...原创 2022-04-15 15:48:22 · 191 阅读 · 0 评论 -
20_22 事件详解
事件不会主动发生,而是由对象某些内部逻辑触发的原创 2022-04-14 11:31:32 · 132 阅读 · 0 评论 -
019 委托
● 委托(delegate)是函数指针的“升级版”○ 示例:C/C++ 中的函数指针● 一切皆地址○ 变量(数据)是以某个地址为起点的一段内存中所存储的值○ 函数(算法)是以某个地址为起点的一段内存中所存储的一组机器语言指令● 直接调用与间接调用○ 直接调用:通过函数名来调用函数,CPU 通过函数名直接获得函数所在地址并开始执行 -> 返回○ 间接调用:通过函数指针来调用函数,CPU 通过读取函数指针存储的值获得函数所在地址并开始执行 -> 返回● Java 中没有与委托相对应的原创 2022-04-07 21:01:21 · 55 阅读 · 0 评论 -
18 传值、输出、引用、数组、具名、可选参数、扩展方法
引用传参:引用变量放进函数中会改变传入的argument通过以下代码认识到引用变量是否以引用形式传入函数所导致的区别如果打印地址,会发现普通函数只是创建了一个新的引用变量指向同一段地址(副本)而引用参数则代表你用的该变量和实参是同一个家伙所以 new 之后的结果不一样public void test() { int x = 10; ChangeInt(ref x); Demo_18_Student demo_原创 2022-04-06 20:57:52 · 85 阅读 · 0 评论 -
17_字段、属性、索引器、常量
字段(field)是一种表示与对象或类关联的变量的成员。● 对于实例字段,它初始化的时机是在实例创建时○ 声明实例字段时初始化值与在实例构造器里面初识化实例字段是一样的● 对于静态字段,它初始化的时机是在运行环境加载该数据类型时○ 即静态构造器初始化时○ 声明静态字段时设置初始化值与在静态构造器里面初始化静态字段其实是一样的数据类型被运行环境加载时,它的静态构造器将会被调用,且只被调用一次。什么是属性当你这样写的时候,属性自带一个字段(或者说 自动属性/简略声明)public int P原创 2022-04-06 19:22:25 · 104 阅读 · 0 评论