随笔分类 -  0 C#基础知识

摘要:delegate 委托 委托是一种将方法作为方法的参数进行回调的机制,类似于C++中的函数指针 委托的定义是一系列调用方法的规范 形式:public delegate 返回类型 委托名(); 委托的定义与方法的定义类似,但委托是一种类型 代码例子 委托的定义是对被委托调用的一种规范定义,如返回值,参 阅读全文
posted @ 2021-04-19 13:27 htiu 阅读(374) 评论(0) 推荐(0)
摘要:Lock是将一段代码定义为临界区,临界区中的代码在同一时刻只能有一个线程访问, 当临界区代码执行时,其他线程调用会被阻塞,需等待资源释放。 语法: private object locker=new object(); void Method() { lock(locker) { 代码块… } } 阅读全文
posted @ 2021-04-14 16:06 htiu 阅读(75) 评论(0) 推荐(0)
摘要:什么是进程 进程是操作系统进行资源分配和调度的基本单位,进程是独立运行的程序 进程的基本用法 Process 是System.Diagnostics命名空间中的类 常用属性 常用方法 实例应用 什么是线程 线程是进程的执行单元,一个进程至少包含一个线程 多线程就类似排队买票,单线程只有一个窗口开放, 阅读全文
posted @ 2021-04-07 08:38 htiu 阅读(71) 评论(0) 推荐(0)
摘要:分页 Skip Take var query = DataSource.Skip((PageNo-1)*PageSize).Take(PageSize).ToList(); Skip 跳过多少个元素 Take取出多少个元素 SkipWhile 逐一判断直到不满足条件,将该元素及其后的元素取出 Tak 阅读全文
posted @ 2021-02-02 14:06 htiu 阅读(93) 评论(0) 推荐(0)
摘要:聚合函数Max 最大值Min 最小值Sum 求和Average 求平均值Aggregate 自定义累计Count 统计元素个数LongCount 统计元素个数返回long型 代码例子 1 List<int> tempList = new List<int> { 56, 34, 23, 21, 78, 阅读全文
posted @ 2021-01-28 16:30 htiu 阅读(109) 评论(0) 推荐(0)
摘要:LINQ Language Integrated Query 语言集成查询 举个例子 1 int[] scores = new int[] { 65,50,45,90,87,65}; 2 Console.WriteLine("高分有:"); 3 //方法一 4 var highscore = fro 阅读全文
posted @ 2021-01-26 16:33 htiu 阅读(136) 评论(0) 推荐(0)
摘要:serialize(序列化)和deserialize(反序列化) 常用的两种序列化方法二进制和xml BinaryFormatter 代码示例 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 usi 阅读全文
posted @ 2021-01-16 16:38 htiu 阅读(140) 评论(0) 推荐(0)
摘要:抽象类 abstract 修饰 抽象类是一种比较特殊的类 特殊性: 1 不能被实例化 2 抽象类可包含抽象方法和属性,也可以包含非抽象的成员,但抽象方法一定存在于抽象类中 3 抽象基类的方法的抽象成员必须在具体派生类中重写(override) 4 抽象类满足类的单一继承和继承传递性 1 public 阅读全文
posted @ 2021-01-11 11:15 htiu 阅读(135) 评论(0) 推荐(0)
摘要:virtual 虚拟的 被virtual标记的方法或属性,本质上是在内存空间中做了定义,但其对应的地址是不固定的,是在运行时根据规则来判定的。 A类 对象名=new B类(),A类叫做申明类,B类叫做实例类 规则: 1 当调用方法时,先检查在申明类中该方法是否是virtual,如果不是虚方法则直接执 阅读全文
posted @ 2021-01-08 16:38 htiu 阅读(119) 评论(0) 推荐(0)
摘要:多态-不同对象作用于相同方法,呈现的结果不同 表现形式为A类 对象名=new B类() A类和B类之间存在直接或间接的继承关系,A类 叫做申明类,B类叫做实例类 运行时多态:重载(overload) 编译时多态:重写(override) 重载:方法名相同,形参的类型个数顺序不同,只与形参有关,与返回 阅读全文
posted @ 2021-01-06 12:45 htiu 阅读(98) 评论(0) 推荐(0)
摘要:继承-类似于现实世界中的子承父业,实现字段、属性、方法(构造方法例外)的继承, 但私有的是无法访问的,将类和类之间进行关联,增加系统的耦合性,被继承的类-父 类或基类,继承的类-子类或派生类。 代码重用性-子类继承父类的非私有的成员 代码例子 1 class People 2 { 3 private 阅读全文
posted @ 2021-01-04 10:34 htiu 阅读(96) 评论(0) 推荐(0)
摘要:封装是对方法、字段、属性等成员的一种保护,是将客观的现实世界抽象为类、对象等,将操作等 集中在一个类中,通过实例化的对象调用属性、方法,而不需要连接类内部的实现,且类内部的改 变不会影响对象对属性、方法的调用 C#中常用的修饰符 public 公共的,人和地方都能访问 private 私有的,只能在 阅读全文
posted @ 2021-01-04 10:31 htiu 阅读(124) 评论(0) 推荐(0)
摘要:常量的定义 常量一经赋值不能再改变其值 const 静态常量 在类型前加const修饰,在定义时为其赋值,因为在静态常量是在编译时进行解析,将常量的值替换初始值 readonly 动态常量 在类型前加readonly修饰,定义时默认有初始值,在运行时可进行赋值 由于const修饰是静态常量,所以被s 阅读全文
posted @ 2020-12-28 11:36 htiu 阅读(126) 评论(0) 推荐(0)
摘要:值传递和引用传递 形参:方法定义处定义的参数 实参:方法调用时提供的参数 值传递:方法传递值,值传递实参和形参都会在栈中占用内存,相互之间并不影响,而是形参限制了实参的类型, 形参作为临时变量在调用结束后即销毁。 引用传递:方法传递引用,引用传递实参和形参在堆中占用同一块内存,形参的改变会影响实参的 阅读全文
posted @ 2020-12-24 17:04 htiu 阅读(109) 评论(0) 推荐(0)
摘要:首先看几个单词 Enum 枚举类型 IEnumerator 枚举器 IEnumerable 可枚举 从单词上大概可以看出IEnumerator是实际枚举器 查看源码 源码分析: 1 IEnumerable接口仅定义了一个返回IEnumerator类型的GetEnumerator方法 2 IEumer 阅读全文
posted @ 2020-12-23 15:44 htiu 阅读(122) 评论(0) 推荐(0)
摘要:struct 和 class的异同 一图理解struct和class的异同 1 相同点 A struct和class是同一等级的,属于命名空间下 B 可以定义字段、属性、方法、构造器等 C 有默认的无参构造方法 2 不同点 A 定义语法关键字不同(struct class) B struct是值类型 阅读全文
posted @ 2020-12-22 08:59 htiu 阅读(310) 评论(0) 推荐(0)
摘要:string 字符串 定义语法:string s=”abc” string str=new string(new char[]{‘a’,’b’,’c’}) string和String string is an alias for String in the .Net Framework string 阅读全文
posted @ 2020-12-22 08:58 htiu 阅读(104) 评论(0) 推荐(1)
摘要:概念 装箱:由值类型转换为引用类型 拆箱:由引用类型转换为值类型 代码解析 逐步分析以上代码: 1 int i=5; 在栈中新建变量i,值为5 2 object o=i;在堆中新建变量o,储存实际值5,并将5在堆中的地址储存在栈中 3 int j=(int)o;在栈中新建变量j,通过栈中o的地址访问 阅读全文
posted @ 2020-12-21 10:49 htiu 阅读(97) 评论(0) 推荐(0)
摘要:什么是栈?什么是堆? 什么是值类型?什么是引用类型? 值类型中的引用类型,引用类型中的值类型。 栈(stack) 概念:内存中连续存放的区域,空间小,速度快,存取按先进后出(FILO First In Last Out) 比如一叠盘子,存:一个个的堆叠,取:从上取 值类型 概念:继承于System. 阅读全文
posted @ 2020-12-21 10:48 htiu 阅读(180) 评论(0) 推荐(0)
摘要:GC (Garbage Collector) 垃圾回收器 GC是对内存的管理,计算机的内存是有限的,早期的C/C++是没有GC的,需要编程者手动回收内存,主要是那时候内存小,程序员重视对内存的管理,但是也存在内存回收时机和忘记回收的问题,会造成内存泄露的灾难。 随着Java的JVM对内存的管理的发展 阅读全文
posted @ 2020-12-21 10:47 htiu 阅读(355) 评论(0) 推荐(0)