摘要: 1.自动属性 Auto-Implemented Properties2.隐式类型 var var变量不能作为全局变量使用,因为不能在编译时确定类型3.参数默认值 和 命名参数4.对象初始化器 与 集合初始化器 { }Person p = new Person(){ Name="aa",Age=18};//属性初始化器List list = new List(){new Person(){ Name="aa",Age=18},new Person(){ Name="bb",Age=18}};//集合初始化器5.匿名类 & 匿名方 阅读全文
posted @ 2014-03-18 17:26 行进 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 1..net 和 C# 的关系.net 是一个平台,C#是种语言,C#语言可以通过。net平台来编写、部署、运行。net应用程序,C#通过。net平台开发。net应用程序2.。net平台的重要组成FCL - 框架类库,即微软事先定义好的类的集合CLR - 公共语言运行时,即创建、部署、运行。net的必备环境3.C#源代码的运行过程通过csc命令将C#源代码编译成exe文件,即程序集,由MSIL(微软中间语言)组成,双击运行,通过CLR公共语言运行时,由于CPU只认识二进制代码,所以JIT会将程序集的微软中间语言转换为本地平台的CPU指令(即二进制代码)并将指令发给CPU执行。(1)不是所有的e 阅读全文
posted @ 2014-03-18 17:25 行进 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 1.类与对象的关系类是对一类事务的统称,是抽象的,不能拿来直接使用,比如汽车,没有具体指哪一辆汽车对象是一个具体存在的,看的见,摸得着的,可以拿来直接使用,比如我家的那辆刚刚买的新汽车,就是具体的对象对象是根据类这个模板创建出来的,类里面有哪些特性或者功能对象里面也有,多不得,少不得2.new 一个对象做了哪些事情?Person person = new Person();new是一个运算符(1)在内存中开辟一块合适大小的空间(2)在这个空间里创建对象(3)调用这个对象的构造函数(4)返回这个空间的引用地址3.访问修饰符类的访问修饰符只有public和internal,内部类的访问修饰符可以为 阅读全文
posted @ 2014-03-18 17:24 行进 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 1.继承(1)创建子类对象的时候,在子类对象中会为子类对象的字段开辟空间,也会为父类的所有字段开辟空间,只不过父类私有的成员访问不到(2)子类从父类继承父类所有的非私有成员,但是父类的所有字段也会创建,只不过父类私有的成员访问不到(3)base关键字可以调用父类的非私有成员(4)子类的访问级别不能比父类高,原因是访问子类的同时也访问了父类,如果子类的访问级别不能比父类高,就矛盾了(5)创建子类的时候,会先调用子类的构造函数,然后调用父类的构造函数,然后执行父类的构造函数,最后再执行子类的构造函数(6)子类的构造函数后面默认加了一个:base()通过这个调用父类的无参构造函数,如果父类没有无参数 阅读全文
posted @ 2014-03-18 17:23 行进 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 1.集合(1)ArrayList内部存储数据的是一个object数组,创建这个类的对象的时候,这个对象里的数组的长度为0(2)调用Add方法加元素的时候,如果第一次增加元神,就会将数组的长度变为4往里面加(3)如果存储数据的数组满了,就会新建一个数组长度是原来的数组的两倍,这个数组被原来的数组的变量所引用比如自己实现简单的ArrayList Add方法public class MyArrayList { private object[] objArray=new object[2]; int index = 0; public void Add(... 阅读全文
posted @ 2014-03-18 17:22 行进 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 什么是生产者消费者模式在 工作中,大家可能会碰到这样一种情况:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产 生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。在生产者与消费者之间在加个缓冲区,我们形象的称之为仓库,生产者负责往仓库了进商 品,而消费者负责从仓库里拿商品,这就构成了生产者消费者模式。结构图如下:生产者消费者模式的优点1、解耦假设生产者和消费者分别是两个类。如果让生产者直接调用消费者的某个方法,那 么生产者对于消费者就会产生依赖(也就是耦合)。将来如果消费者的代码发生变化, 可能会影响到生产者。而如果两 阅读全文
posted @ 2014-03-18 17:20 行进 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 在网络编程中,我们经常会遇到阻塞、非阻塞、同步、异步这两组概念,许多人很容易混淆,现在就给大伙儿说说我对着两组概念的理解。先说说阻塞与非阻塞,这主要和程序等待消息时的状态有关1、阻塞程序会阻塞在某一个函数,而不往下执行,就如挂在那里一样,所有的其他业务也都不执行,为一直等到消息到来才往下执行。2、非阻塞程序不会阻塞在某一个函数,不等待消息到来,立即返回,往下执行。举个例子,TCP协议中的send,系统会为其分配一块发送缓存区,假设现在总的缓存 区的大小为1000.,而缓存区里已经有了500个数据,这时调用send,发送1000个字节数据,这时如果在阻塞模式下,send的会先最多的数据放入缓存, 阅读全文
posted @ 2014-03-18 17:17 行进 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 1.多线程简单使用(1)进程是不执行代码的,执行代码的是线程,一个进程默认有一个线程(2)线程默认情况下都是前台线程,要所有的前台线程退出以后程序才会退出,进程里默认的线程我们叫做主线程或者叫做UI线程(3)线程什么时候结束?如果线程是前台线程,该线程执行的方法执行完以后线程就会自动退出(4)后台线程只要所有的前台线程结束,后台线程就会立即结束(5)多个线程访问同一资源,可能造成不同步的情况,这个叫做线程重入,可以使用lock加锁将执行的共同方法中的代码加上lock(6)thread.Abort();//强行停止线程Thread.Sleep(5000);//将当前线程暂停5秒Thread th 阅读全文
posted @ 2014-03-18 17:10 行进 阅读(137) 评论(0) 推荐(0) 编辑