上一页 1 ··· 6 7 8 9 10 11 12 13 下一页
摘要: 一、try catch 中的catch抛出异常必须是更具体的异常处理类,像父级异常处理抛出。就是说Exception应该是最后一个抛出的异常。在Exception抛出异常后,其后的异常将不处理。二、尽可能的不要把可能出现异常的代码块方法哦,finally中,即使finally出现异常,系统的异常机制继续工作,一个try块只能有一个finally,该块的代码一定被执行,在catch之后执行。三、Exception是所以异常的基类,System.SystemException 和System.ApplicationExcepion都继承自它。Fcl类型定义的方法抛出继承自System.System 阅读全文
posted @ 2011-04-14 16:10 狼-志 阅读(146) 评论(0) 推荐(0)
摘要: 一、委托是方法(静态方法、实例方法)的封装,我们把一个方法传递给委托后,该委托就指向一个具体的方法,在委托中写参数就如同像该方法中写参数,并指向该方法一样。二、申明委托编译器会将这行委托代码生成,4个方法:一个构造器、Invoke(和源代码中指定的原型一样,名称不同,而且是虚方法;参数、返回值和源代码定义一致)、BeginInvoke、EndInovke(BeginInvoke、EndInovke用于进行异步回调)。三。所以的委托都有一个构造器,并且该构造器接受2个参数:一个对象引用、一个指向回调方法的整数。四。所以的委托都继承自,MulticastDelegate,而MulticastDel 阅读全文
posted @ 2011-04-14 14:21 狼-志 阅读(228) 评论(0) 推荐(0)
摘要: 一、接口可以定义方法,属性、索引器、事件,并且自动默认public,不能加修饰符,当一个类实现某个接口时,其必须实现该接口定义的对象,还要实现该接口继承的接口的对象。二、如果一个类实现了多个接口,那么就可以将该类的实例重一个接口类型转换为另外一个接口类型,湖而建定义的总是虚方法,一个值类型转型为接口时,发生装箱操作。三、IS-A,是否继承关系:用基类;CAN-DO,能做:用接口;控件用的是继承,而集合(Collections)用的是接口,接口是一组行为的“集合”,约定大家都有这些行为。四、如果在基类中,添加新对象,派生类不用任何改变;如果是接口,则凡是继承了接口的类都必须修改代码来实现,接口中 阅读全文
posted @ 2011-04-13 12:01 狼-志 阅读(262) 评论(0) 推荐(0)
摘要: 一、数组是引用类型,值类型的数组也是引用类型。二、int[] myint; myint = new int[100]; 首先myint被神秘为一个指向元素类型int的一维数组变量,此时myint被设置为null。当分配100个int的数组时,所有这些int元素值都被初始化为0.虽然int属于值类型,单保存这些int值的内存块却是从托管堆中分配的。该内存包含100个为装箱的int值,最后代码返回保存这些int值的内存块地址,并将其保存在变量myint中。Control[] myCtr; myCtr= new Control[50];首先myCtr被设置为null,然后分配一个包含50个Contr 阅读全文
posted @ 2011-04-12 15:00 狼-志 阅读(297) 评论(0) 推荐(0)
摘要: 一、枚举:继承关系System.Object-->system.ValueType--->System.Enum(值类型),可对其进行格式化输出。二、判断一个枚举是否合法:Enum.IsDefined;枚举类型转换:Enum.Parse;可以把数值转换为枚举类型。三、位标记:定义一个枚举类型,在枚举类型上加上[Flags]属性。如: [Flags]enum Actions{Read =0X0001,Write=0X0002,Delete=0X0004,Query=0X0008,Sync=0X00010,}调用Actions actions=Actions.Read|Actions. 阅读全文
posted @ 2011-04-12 10:54 狼-志 阅读(289) 评论(0) 推荐(0)
摘要: 我们在做开发的时候,常常会使用到集合类型,常见的集合类型有Array、Queue、Stack、ArrayList、StringCollection、Hashtable、SortedList、ListDictionary等等。选择需要使用的类型的时候,我们需要分析清楚一下情况: 只作为简单的固定类型数据集合使用,不需要任何额外功能? Array是首选,即我们常用的的int[],string[]等。 是否需要一个序列列表,其中的元素通常在检索其值后被放弃? 如果需要,那么在需要先进先出 (FIFO) 行为时请考虑使用 Queue 类或 Queue 泛型类。在需要后进先出 (LIFO) 行为时请考虑 阅读全文
posted @ 2011-04-10 13:40 狼-志 阅读(316) 评论(0) 推荐(0)
摘要: 一、char 字符类型(他是值类型,strcut):3种转换类型方法:1.(int)char。 2.convert.ToInt()。3.IConvertlble,该接口实现了大量的类型间转换操作,FCL中的数值类型都实现了该接口。其公实现了:IComparable, IConvertible, IComparable<char>, IEquatable<char>几个接口。二、所有直接继承只System.Object的类型都是引用类型。郁闷吧。System.ValueType居然是引用类型,所有的值类型都是继承自它。三、string(密封类)共实现 IComparabl 阅读全文
posted @ 2011-04-10 00:43 狼-志 阅读(562) 评论(0) 推荐(0)
摘要: 一、 事件:允许对象登记事件;允许对象注销事件、允许定义事件的对象维持一个登记对象的集合,并在某些特定的事件发生时通知这些对象。clr的事件是建立在委托(delegate)上的。二、事件只能由事件的类型登记或者注销。事件其实是一个静态函数。三、事件继承自,Sysetm.EventArgs;命名规则是事件应该以EventArgs结尾。委托应该以EventHandler结尾。为的是命名标准。四、事件的本质是委托,定义一个事件时,c#编译器会生成1个委托类型的私有字段,一个add_+事件名,一个remover_+事件名的 2个public的方法。一个用于注册事件,一个用于注销事件。2个方法都有一个委 阅读全文
posted @ 2011-04-09 13:37 狼-志 阅读(268) 评论(0) 推荐(0)
摘要: 一、静态(类型)构造器不应该调用基类中的静态(类型)构造器,因为静态字段并没有被派生类继承(即在父类中定义的静态字段等对象,在其子类并不能访问。),一个类只能有一个静态构造器,并且必须是无参的。二、当需要在应用程序域关闭时执行某些代码用System.AppDomain的DomainUpload事件。三、CLR假设所有的方法参数都是按值来专递的。当参数是一样类型对象时,参数的传递可以通过传递指向对象的引用(或者指针)来完成。 对应值类型的参数来说,传递给方法的是将值类型实例的一个拷贝。这就是说,方法得到一份属于它自己的值类型实例拷贝,而调用该方法的代码中的实例不会受到任何影响。四、out:在调用 阅读全文
posted @ 2011-04-09 00:06 狼-志 阅读(268) 评论(0) 推荐(0)
摘要: 一、实例构造器:创建一个引用类型实例时,分三步1.为该实例分配内存 2.初始化对象的附近成员(方法表指针,SyncBlockIndex) 3.在调用类型的实例构造器设置对象的初始值。系统为该实例分配内存时总是把所有位上的值设置为0(二进制0),以保证构造器没有赋值的对象都有一个初始值0或者null;如果我们在申明类时没有申明构造器,系统将默认生成一个公有的无参数构造器。 实例值类型构造器:对于值类型 使用new仅仅是调用构造器,来初始化已经分配好的内存,为值类型定义任何构造器都必须初始化,值类型中的所有字段。c#不允许我们为值类型定义实例无参构造器(CLR可以为值类型定义无参构造器,所有可以用 阅读全文
posted @ 2011-04-08 11:40 狼-志 阅读(226) 评论(0) 推荐(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 下一页