08 2012 档案

摘要:事件的四个步骤:(1)在事件发行者中定义一个事件//声明一个事件,首先要声明一个和事件关联的委托类型//声明delegate时,其返回值必须为void类型public delegate void DelegateAccount(string info);public delegate void DelegateSales(string info);//根据前面声明的委托类型,声明事件//事件的声明使用event关键字,后面是委托类型和事件名称public event DelegateAccount OnAccount;public event DelegateSales OnSales;(2) 阅读全文
posted @ 2012-08-31 03:07 Coder.Shen 阅读(930) 评论(0) 推荐(0)
摘要:委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用if-else(switch)语句,同时使得程序具有更好的可扩展性。使用委托可以将多个方法绑定到同一个委托变量上(通常称这个委托变量为:委托链),当调用此变量时,会依次调用所有绑定的方法;于此同时,也可以通过类似绑定的方式删除方法。一个简单的委托例子using System;using System.Collections;namespace Delegate{ //用delegate关键字声明一个委托 //委托原型必须与预委托的方法具有相同的返回... 阅读全文
posted @ 2012-08-31 00:47 Coder.Shen 阅读(951) 评论(0) 推荐(2)
摘要:索引器允许类或者结构的实例按照与数组相同的方式进行索引取值,索引器与属性类似,不同的是索引器的访问是带参的。索引器和数组比较:(1)索引器的索引值(Index)类型不受限制(2)索引器允许重载(3)索引器不是一个变量索引器和属性的不同点(1)属性以名称来标识,索引器以函数形式标识(2)索引器可以被重载,属性不可以(3)索引器不能声明为static,属性可以一个简单的索引器例子using System;using System.Collections;public class IndexerClass{ private string[] name = new string[2]; /... 阅读全文
posted @ 2012-08-27 23:59 Coder.Shen 阅读(58821) 评论(14) 推荐(37)
摘要:属性的四个种类:(1)可读写(Read/Write)属性,需实现get和set访问器(2)只读(Readonly)属性,只实现get访问器(3)只写(Writeonly)属性,只实现set访问器(4)Static属性,只能访问静态数据using System;public class Prop{ private string m_name; private string m_sex; //属性Name,读取和设置m_name public string Name { get { return m_name; ... 阅读全文
posted @ 2012-08-27 22:03 Coder.Shen 阅读(502) 评论(1) 推荐(0)
摘要:1:垃圾回收机制CLR托管堆:(1)第0代--预算容量256k(2)第1代--预算容量2M(3)第2代--预算容量10M注:在不同的程序中,托管堆上的实际内存管理对象的容量可能不会按照预算容量大小开辟当第0代对象充满的时候,会自动进行垃圾回收,这时第0代中未被释放的对象成为了第1代,而新创建的对象变成第0代,以此类推,当第0代再次充满的时候会继续执行垃圾回收,未被释放的对象会被添加到第1代,随着程序的执行,第1代对象中也会产生垃圾,此时垃圾回收器并不会立即执行回收操作,而是等第1代被充满变成第2代时被回收并整理内存。2:Finalize析构函数被调用的条件:(1)第0代对象充满(2)显示调用S 阅读全文
posted @ 2012-08-27 03:52 Coder.Shen 阅读(2104) 评论(0) 推荐(0)
摘要:using System;class A{ //静态构造函数用来初始化类的静态成员,使用类A时会自动调用,且不管该类有多少实例对象,该函数只执行一次 static A() { Console.WriteLine("类A静态构造函数被调用"); } public A() { Console.WriteLine("类A默认构造函数被调用"); } public A(int i) { Console.WriteLine("类A带参构造函数被调用"); }}class B:A{ public B... 阅读全文
posted @ 2012-08-27 02:03 Coder.Shen 阅读(363) 评论(0) 推荐(0)
摘要:1:value(值传递)、ref(引用传递)、out(输出传递)ref和out使用效果上面是等效的,它们的区别在于:参数标记为ref,那么必须在调用函数之前初始化参数的值;参数标记为out,调用函数之前不需要初始化对象,但调用的函数必要在函数返回之前为对象赋值using System;//value(值传递)、ref(引用传递)、out(输出传递)public class Test{ public static void ValueFun(int i) { i++; } public static void RefFun(ref int j) { ... 阅读全文
posted @ 2012-08-27 00:29 Coder.Shen 阅读(3646) 评论(0) 推荐(0)
摘要:Array和ArrayList的区别1:Array的容量是固定的,而ArrayList的容量可以根据需要自动扩充2:ArrayList提供添加/插入或者移除某一段范围元素的方法;在Array中,只能一次获取或设置一个元素值3:Array可以是多维的,但ArrayList只能是一维using System;//Arraypublic class Test{ static void Main() { //第一种声明形式 int[] a = new int[2]; a[0] = 1; a[1] = 2; for (in... 阅读全文
posted @ 2012-08-26 22:34 Coder.Shen 阅读(315) 评论(0) 推荐(0)