07 2022 档案
摘要:一、浅拷贝 1、通俗来说,浅拷贝就是单纯的把一个对象指向的地址给另外一个对象,例如: Person p1= new Person(); Person p2 =p1; //这就是我们常用的——浅拷贝,现在p1,p2指向的是同一个地址 //假如Perso类中有一个字段name p1.name = "李四
阅读全文
摘要:一、主要目的 当一个系统或者是一个应用涉及面很广,功能繁多,业务逻辑十分复杂的时候,程序员往往需要花费大量的时间去摸索实现方式。 直到一个大佬结合了日常开发中所用到的思想,并总结出了二十三种设计模式。直至今日这些设计模式被程序员广泛应用。 它的作用十分的直观:让代码变得更加简洁易懂方便交互,并且易于
阅读全文
摘要:一、什么是反射? 了解反射之前我们必须知道一个概念——元数据。有关程序和程序类型的信息叫做元数据,通俗的解释就是类里面的方法、属性、字段等。 而程序在运行的时候去查看其它程序集的行为就叫做反射。在我们不知道类的内部情况时,反射可以让我们获取类里所有的方法、属性等。 二、怎么实现? c#的基础类库声明
阅读全文
摘要:一、枚举器 1、为什么foreach可以顺序遍历数组? 因为foreach可以识别可枚举类型,通过访问数组提供的枚举器对象来识别数组中元素的位置从而获取元素的值并打印出来。 2、什么是枚举器?可枚举类型? 枚举结构里元素都是默认排序的,可以依靠识别元素的位置来获取值。可以把枚举器看做是集合的一个方法
阅读全文
摘要:一、概述 编译器提供的便捷功能,就是语法糖。可以理解为是为了优化代码。被async修饰的函数被称之为异步函数,主要用于异步编程,着重于靠await实现回调机制。 二、声明 async/await由三部分组成:调用方法、异步函数、await表达式。调用方法调用异步函数,异步函数包含await表达式。
阅读全文
摘要:一、概念 为防止一个应用程序占用CPU导致其他程序和操作系统长时间挂起,操作系统把物理计算单元分割为虚拟的进程,并赋予一定的计算能力。 线程就是实现分割物理单元的方法。一个进程可以拥有多个线程。 二、多线程 线程可以看做是虚拟的进程,用于独立运行指定的程序。而线程与线程之间的协作跟通信又成为我们不得
阅读全文
摘要:一、概念 TPL的核心就是任务,一个任务代表一个异步操作,该操作可以通过多种方式运行,一个任务也可以由多个任务组成。 二、应用 1、创建任务有三种方法: var t1 = new Task(() => TaskMethod("Task 1")); //通过Task构造函数创建 var t2 = ne
阅读全文
摘要:一、什么是事件? 我们可以把任意一个行为看作是一个事件,例如我现在打字也是一个事件, 事件的产生需要两个要素: 1、产生行为的事务,可以理解为触发器 2、事件发生之后的接收者 二、为什么要用到事件? 使用事件的根本性目的就是为了加强类的封装性,通过对委托变量进行封装,来保证委托类型的变量无法在类外部
阅读全文
摘要:1、什么是接口? 1.接口是一种规范,就好像U盘的接口,谁拥有这个类型的接口,谁就能使用U盘里的一切。 2.接口中不能出现构造函数跟字段,因为它跟抽象类很像,光说不做,只是定义了一组未实现的方法。 3.接口内的成员不能加任何修饰符,默认为public。 2、接口有啥用? 就像之前说的,它是一种规范,
阅读全文
摘要:1、声明一个委托类型,这个委托类型可以调用跟它签名相同(返回值跟参数列表)的函数。 2、可以把委托看作是一个存放多个函数地址的集合,里面的函数的签名就像声明集合的类型。 3、定义、调用 修饰符 delegate 返回值类型 委托名 ( 参数列表(可省略) );//定义一个名为MyDelegate的委
阅读全文
摘要:一、作用 静态类和非静态类最重要的区别是在于静态类不能被实例化,也就是说不能使用 new 关键字创建静态类类型的变量,防止程序员写代码来实例化该静态类或者在类的内部声明任何实例字段或方法。 用于存放不受实例数据影响的1数据和函数。其内所有的成员都必须为静态,等同于密封类。 二、静态成员 静态成员可以
阅读全文
摘要:一、常用变量类型 注意:浮点类型既能存储整数,也能存储小数。 金钱:decimal 范围:-7.9228×10的28次方 ~ 7.9228×10的28次方精度:28 ~ 29个有效位 注意:必须带后缀名M或者m,否则会被视为double型。 二、转义符 \n:换行 \":英文双引号 \t:表示tab
阅读全文
摘要:一、概述 什么情况下会用到扩展方法?当项目原有的类型已经确定,但现需求往类型里添加方法,在不改动源代码的情况下,就需要使用扩展方法。 当现有类型想要在原有基础上增加或改变一些功能(方法),扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型,保留了类型的封
阅读全文
摘要:一、概念 什么是泛型?假如你要写两个功能很像的方法,但是只是参数类型不同而已,你会怎么做?泛型就是为这种场景服务的。 二、作用 泛型的主要目的就是为了简化代码、增强可移植性。ArrayList是一个很方便的容器类,使用中无需更改就可以存储任何引用类型或值类型,但是这种便利是有代价的,这需要把任何一个
阅读全文
摘要:一、虚方法(virtual) 作用:当类中的函数需要在子类中重写时,可以使用虚方法。 示例: class Person { public virtual void XXX() { Console.WriteLine("我有一个梦想,那就是动身去往远方!!"); } } class Boy : Per
阅读全文