随笔分类 -  C#基础

主要讲解C#相关基础
摘要: 阅读全文
posted @ 2017-12-05 15:31 wesley1680 阅读(145) 评论(0) 推荐(0)
摘要:线程池的与实例线程的比较 阅读全文
posted @ 2017-11-20 18:56 wesley1680 阅读(86) 评论(0) 推荐(0)
摘要:一、异步委托第一种使用方式 异步调用委托,其实就是使用了一个线程池去执行了委托执行的方法。 1 static void Main(string[] args) 2 { 3 Console.WriteLine("当前主线程:" + Thread.CurrentThread.ManagedThreadI 阅读全文
posted @ 2017-11-15 11:32 wesley1680 阅读(222) 评论(0) 推荐(0)
摘要:1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //池子 6 MyConnction[] connections = new MyConnction[100]; 7 8 //创建一个消费者 9 int index = -1; 1 阅读全文
posted @ 2017-11-15 11:04 wesley1680 阅读(372) 评论(0) 推荐(0)
摘要:一、线程和进程的概念 程序执行需要资源(内存,带宽,cpu,磁盘空间),操作系统分配资源的最小单位就是一个进程。 一台电脑上会跑很多个程序,一个时间点只能执行一个程序,如果逐个执行,那么执行当前程序的时候,其他程序就处于停顿状态(不能执行),程序会很卡。所以cpu会来回快速切换不同的程序,就好比同时 阅读全文
posted @ 2017-11-11 11:20 wesley1680 阅读(124) 评论(0) 推荐(0)
摘要:一、定义 接口是一种规范,是一种行为准则。 比如:U盘,手机都有usb接口,他们都能接到电脑上,其中行业的标准规范,规定了U盘,手机的USB接口的宽度,高度等,U盘,手机的USB接口都是根据行业规范生产的,是行业规范的实现。(类实现接口)。电脑上的USB插口的类型是IUSB(行业标准的接口),U盘插 阅读全文
posted @ 2017-05-15 10:33 wesley1680 阅读(125) 评论(0) 推荐(0)
摘要:一、foreach的工作原理 二、拷贝、深拷贝和浅拷贝 阅读全文
posted @ 2017-05-05 18:21 wesley1680 阅读(1020) 评论(0) 推荐(0)
摘要:一、隐式类型(类型推断:编译时能确定数据类型)(var 类型在编译的时候能确定数据类型,是隐式类型,也是强类型) var s="sf"; var i=1; var ints=new int[] {1,2}; var t;//报错,编译的时候不能推断出类型 以上都是类型推断。 二、匿名类型 var i 阅读全文
posted @ 2017-05-05 17:40 wesley1680 阅读(397) 评论(0) 推荐(0)
摘要:一、定义 反射是一种 通过动态读取程序集,获取其中的类型元数据,并且对其进行访问的 技术。 二、用法 首先创建一个Person类。 1 public class Person 2 { 3 private int _size; 4 public string Name { get; set; } 5 阅读全文
posted @ 2017-05-04 15:09 wesley1680 阅读(149) 评论(0) 推荐(0)
摘要:一、概念 程序集是.net中的概念。主要包括类库生成的dll文件,控制台或者winform等生成的.exe文件。可以看作是相关的类的打包,相当于java中.jar包。 类型元数据:程序集中的类的成员,定义的类型等。 程序集元数据:程序集清单,版本号,名称等。 IL代码:微软中间语言。 资源文件:比如 阅读全文
posted @ 2017-05-03 16:55 wesley1680 阅读(148) 评论(0) 推荐(0)
摘要:一、事件初印象 首先看个播放器的案例 1 class Program 2 { 3 static void Main(string[] args) 4 { 5 MP3 m = new MP3(); 6 7 //启动前 8 m.BeforeStartMP3 = () => { Console.Write 阅读全文
posted @ 2017-05-02 18:30 wesley1680 阅读(118) 评论(0) 推荐(0)
摘要:一、扩展方法引入 有个Person类,里面的成员如下: 1 public class Person 2 { 3 public string Name { get; set; } 4 5 public void SayHi() 6 { 7 Console.WriteLine("hello, i am 阅读全文
posted @ 2017-05-02 17:49 wesley1680 阅读(156) 评论(0) 推荐(0)
摘要:1 ////T必须是值类型 2 //public class MyClass<T> where T:struct 3 //{ 4 5 //} 6 7 //T必须是引用类型 8 //public class MyClass<T> where T : class 9 //{ 10 11 //} 12 1 阅读全文
posted @ 2017-04-30 18:18 wesley1680 阅读(119) 评论(0) 推荐(0)
摘要:一、Action(没有返回值的委托,参数可有可无) 1.Action是无参无返回值的委托,用法如下:(非泛型Action) 1 //无参无返回值的Action 2 Action a = () => { Console.WriteLine("这是无参数无返回值的Action"); }; 3 a(); 阅读全文
posted @ 2017-04-30 15:41 wesley1680 阅读(157) 评论(0) 推荐(0)
摘要:一、引言 前面我们学过泛型集合List,非泛型集合ArrayList,了解到创建List集合的时候,需要指定类型,并且只能存储这种类型的数据,相比ArrayList能存储各种类型的数据而言,效率更高(避免了装箱拆箱)。那我们声明List<int>集合的时候,开始为何不直接设计一个ListInt类,而 阅读全文
posted @ 2017-04-28 18:18 wesley1680 阅读(120) 评论(0) 推荐(0)
摘要:首先定义两个委托和几个方法,后面会用到。 委托: 1 public delegate void M1Delegate(); 2 3 public delegate int M2Delegate(int x,int y); 方法: 1 static int A1(int x,int y) 2 { 3 阅读全文
posted @ 2017-04-28 17:15 wesley1680 阅读(135) 评论(0) 推荐(0)
摘要:一、匿名方法的引入 先写几个委托,后面的代码中会调用。 1 public delegate void DelegateM1(); 2 3 public delegate int DelegateM2(int n1,int n2); 4 5 public delegate int DelegateM3 阅读全文
posted @ 2017-04-27 15:12 wesley1680 阅读(224) 评论(0) 推荐(0)
摘要:一、委托案例引入 1.案例一: 首先新建一个控制台项目委托案例一,一个类库委托类库一,在类库一中的类Class1中编写Do()方法。然后在控制台项目委托类型一种输出,代码如下: Class1中的代码: 1 namespace 委托类库一 2 { 3 public class Class1 4 { 5 阅读全文
posted @ 2017-04-25 19:24 wesley1680 阅读(128) 评论(0) 推荐(0)
摘要:一、概念 正则表达式是用来表示字符串特征的表达式。它说明了字符串中那些字符是必须有的,哪些是可能出现的,哪些是不能出现的。 二、元字符 1) . 表示一个字符。如:a.b,表示ab之间有一个除了\n外的单个字符。 2)[] 表示 字符的筛选。括号中的字符任选一个。 3)[^] 除了括号中的字符,任选 阅读全文
posted @ 2017-04-05 16:39 wesley1680 阅读(152) 评论(0) 推荐(0)
摘要:压缩 先读取,再写入。只是在写入的时候,需要根据规则写入,如果用用压缩流写入,就成了压缩。 1 using (FileStream fs = new FileStream("yasuo.txt", FileMode.Open, FileAccess.Read)) 2 { 3 byte[] buffe 阅读全文
posted @ 2017-03-28 18:56 wesley1680 阅读(232) 评论(0) 推荐(0)