c#
井队Tell
海阔凭鱼跃,天高任鸟飞!
展开
-
数据结构简介
数据结构简介分类1 Array2 ArrayList3 List4 LinkedList5 Queue 队列5 Stack 栈6 Dictionary分类1 Array2 ArrayList3 List4 LinkedList5 Queue 队列5 Stack 栈6 Dictionary<K,T> 字典7 应用场景...翻译 2020-01-03 15:53:42 · 138 阅读 · 0 评论 -
C#进阶学习第十一天
目录1.类型参数约束基类约束接口约束构造函数约束引用类型值类型约束组合约束2.泛型委托3.泛型接口4.泛型方法1.类型参数约束一共5种约束基类约束1.给T指定的类型必须是某个类类型或该类的子类类型 通过where给T添加约束2.当指定基类约束后,T对象可以访问该基类中所有的共有的成员3.只能指定一个基类例: public class vector<T> where ...原创 2019-03-25 07:33:05 · 195 阅读 · 0 评论 -
C#进阶学习第十天
目录1.C#泛型编程2.泛型参数1.C#泛型编程1.用T表示不确定的类型来作为一个占位符,等待在实例化时用一个实际的类型来代替。 public class Vector<T>{ private T[] array; int main() private int size; { Vector<in...原创 2019-03-22 11:23:07 · 168 阅读 · 0 评论 -
C#进阶学习第九天
目录1.值类型和引用类型2.类型的转换,装箱拆箱3.参数传递问题1.值类型和引用类型1.值类型 变量中保存的就是数据本身 int a = 4; 由操作系统管理引用类型 变量保存的是数据地址 string b = “luohai”; 由垃圾回收器管理值类型可能在堆和栈上,看其是否嵌套其它类型 引用类型一定在堆上!2.引用类型嵌套值类型class A{ ...原创 2019-03-22 11:06:04 · 140 阅读 · 0 评论 -
C#进阶学习第八天
目录1.定义事件11.定义事件21.定义事件1角色:事件发布者:发布事件 (触发事件的对象)事件订阅者:接受事件,相应处理(捕获事件并且对其处理)定义事件:访问修饰符 event 委托类型 事件名1.修饰符一般为公有public 对其它类可见2.委托类型可以是自定义委托类型,或者预定义的EventHandler int main() { friend f1 = ...原创 2019-03-22 10:59:18 · 211 阅读 · 0 评论 -
C#进阶学习第七天
目录1.接口2.显示接口的实现方式3.接口和抽象类的区别4.委托1.接口对一组方法声明进行统一的命名管理,(不同类型出现相同方法时)1.通过关键字 interface修饰2.接口中的方法没有访问修饰符,默认为公有,没有函数体3.一个类不允许多重继承,但可以继承多个接口4.定义方法,属性,事件,索引器 不能包含字段,运算符重载,实例构造函数,析构函数5.接口中不能使用static关...原创 2019-03-22 10:51:01 · 160 阅读 · 0 评论 -
C#进阶学习第六天
目录1.面向语言的特点1.1封装1.2继承1.3多态1.面向语言的特点1.1封装把客观事物封装成类,并将类内部实现隐藏,保证数据完整性字段设置为私有,通过属性机制get() 和 set() 方法来访问私有成员1.2继承1.通过继承可以复用父类的代码 (密封类不能继承,不能当父类)2.子类将获得父类中所有的成员 ...原创 2019-03-22 10:41:14 · 137 阅读 · 0 评论 -
C#进阶学习第五天
目录1.单例模式2.索引器3.结构体和类详解1.单例模式1.构造函数私有,不能通过私有构造函数创建对象,只能通过getinstance()方法得到同一个对象2.因为每次获取到的对象都是同一个对象,不会出现两个不同的对象,所以称为单例模式private static Person pp;public static Person getPerson() { if(pp ==n...原创 2019-03-22 10:15:59 · 233 阅读 · 0 评论 -
C#进阶学习第四天
目录1.属性2.方法3.构造函数4.析构函数1.属性定义:是对字段的扩展,通过公有属性访问私有字段,在属性中生成字段的get() 和 set() 方法作用:保护字段,对字段的赋值和取值进行限定结构:访问权限修饰符 类型 名称 一般为字段第一个字母的大写 public int Age { get{ return...原创 2019-03-22 10:01:23 · 154 阅读 · 0 评论 -
C#进阶学习第三天
目录1.类的定义2.修饰符3.类的成员4.字段1.类的定义1.它代表具有公共属性和行为的对象2.它是一个抽象的群体,对象就是该类的一个具体实例3.对象具有该类声明时的共有的特征(字段)和行为(方法)4.用class关键字声明,class之前无指定访问修饰符,默认为internal,只能在当前项目内可以被访问2.修饰符 无或者internal 只能在同...原创 2019-03-22 09:49:33 · 153 阅读 · 0 评论 -
C#进阶学习第二天
目录1.变量和常量2.运算符和表达式3.可重载运算符4.c#的几种语句1.变量和常量变量:值可以改变,通过变量对数据实现存取操作public const static int b=0; //报错!常量:值不能修改,声明时必须初始化,默认静态的,不允许显示使用static关键字进行声明2.运算符和表达式运算符结合性:一元 条件 赋值 只有这3个是从右向左结合的,其余都是从左往...原创 2019-03-22 09:41:40 · 303 阅读 · 0 评论 -
C#进阶学习第一天
C#第一天1.netframework的组成2.基础3.标示符和关键字4.数据类型5.数类型强制转换6.字符串类型7.枚举类型 类外创建 值类型8.结构体类型 类外创建 值类型9.数组类型 引用类型 相当于指针1.netframework的组成1.公共语言运行时(CLR)通用类型系统CTS:解决不同语言之间的数据类型不同的问题公共语言规范CLS:解决语言规范的问题2.NetFramewo...原创 2019-03-22 09:28:19 · 313 阅读 · 0 评论 -
C#进阶学习第十八天
目录1.线程与进程2.线程池3.线程同步技术1.线程与进程程序执行后默认会生成一个主线程。新创建的线程叫做子线程两个方法会在主线程中排队执行进程:就指程序线程:指程序中代码执行的一个序列多线程:生成一个新的线程,在新的线程中去执行另外一个操作,多个线程可以同时执行注:1.一个进程至少有一个主线程2.两个线程启动不分先后,结束不分先后,看CPU分配资源3.进程有独立的内存单元,多...原创 2019-03-25 09:20:08 · 158 阅读 · 0 评论 -
C#进阶学习第十七天
目录1.file类:静态类1.1 创建文件1.2 删除文件1.3 文件流1.4 判断文件是否存在1.5 拷贝文件,覆盖1.6 移动文件1.7 打开文件1.8 写入数据1.9 读出数据1.10 清除缓存1.11 关闭文件流1.12 设置文件流的位置2 fileInfo类2.1 创建文件2.2 移动文件2.3 拷贝文件2.4 删除文件2.5 判断文件是否存在3 Directory类3.1 创建文件3....原创 2019-03-25 09:14:03 · 222 阅读 · 0 评论 -
C#进阶学习第十六天
目录1.反射1.1 定义1.2 3种实现方式2 Type类的基本用法2.1 得到构造函数2.2 得到指定的构造函数2.3 创建构造函数的2种方法,对象2.4 查看类中的属性并修改2.5 通过方法名获取指定方法3 Assembly类的用法3.1 Load方法加载层序句3.2 获取指定类型3.3 通过loadfrom加载程序集1.反射1.1 定义获取某类型详细信息的类1.2 3种实现方式1....原创 2019-03-25 08:53:15 · 254 阅读 · 0 评论 -
C#进阶学习第十五天
目录1.LINQ解析2.LINQ查询XML文件1.LINQ解析语言集成查询,包含4个组件Linq to SQL :查询数据库的数据Linq to DataSet :查询DataSet中的数据,对其增删等操作Linq to XML :查询XML文件Linq to Objects :查询集合数据,如数组或List 1.int[] array = { 23, 4, 1, 67, 34...原创 2019-03-25 08:31:46 · 240 阅读 · 0 评论 -
C#进阶学习第十四天
目录1.扩展方法2.扩展方法查找规则3.可选实参4.命名实参5.泛型的可变性6.泛型的逆变性7.动态型(很少用)1.扩展方法1.用来扩展已经定义类型的方法成员。为现有的类型添加方法2.在静态类中扩展方法,至少有一个参数,这个参数前加this, this后边是要扩展的类对象3.不同的封闭泛型,扩展的方法也不一样 //1.扩展自定义类的方法 public class pers...原创 2019-03-25 08:20:36 · 218 阅读 · 0 评论 -
C#进阶学习第十三天
目录1.匿名类型2.Lanbda表达式1.匿名类型没有指明类型的类型,通过隐式类型和对象初始化器创建了一个未知类型的对象,减少了代码1.定义匿名类型对象: 只能包含只读属性,不能修改 var p = new{Name = "libiao",Age = 23}; Console.WriteLine ("姓名:"+p.Name +"年龄:"+p.Age);2.定义匿名类型数组...原创 2019-03-25 08:07:27 · 198 阅读 · 0 评论 -
C#进阶学习第十二天
目录1.可空类型2.空合并操作符3.匿名方法4.迭代器5.属性字段小注6.隐式类型7.对象初始化器8.集合初始化器1.可空类型1.值类型后面加? 表示可空类型,是一种特殊的值类型,可以赋值为null, int? nillabe = null;2.引用类型后面不能加?因为本身就可以赋值为空3.普通值类型 int a = null //报错! if (b.HasValue) { C...原创 2019-03-25 07:57:40 · 213 阅读 · 0 评论