




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C#学习心得 第一篇:C#学习心得集合声明:类B可以换成任意object对象1、CollectionBase类A继承CollectionBase类,通过CollectionBase的成员List实现类A的Add(类B)、Remove(类B)和RemoveAt(类B)方法:publicvoidAdd(类BnewB){List.Add(newB);}publicvoidRemove(类BnewB){List.Remove(newB);}publicvoidRemoveAt(intindex){List.RemoveAt(index);}在类A中建立索引可以按类似数组的方法访问。public类Bthis[intindex]{get{return(类B)List[index];}set{List[index]=value;}}利用CollectionBase的成员InnerList(ArrayList对象)实现类A的Contains()方法:publicboolContains(类BnewB){returnInnerList.Contains(newB);}注意:InnerList是ArrayList类实例,其Contains方法通过调用Object.Equals确定相等性,Equals默认实现仅支持引用相等。对于引用类型,相等定义为对象相等,即这些引用是否引用同一对象。对于值类型,相等定义为按位相等。可以在类B中重写Object.Equals方法和GetHashCode()方法。publicoverrideboolEquals(objectobj){//Checkfornullandcomparerun-timetypes.if(obj==null||GetType()!=obj.GetType())returnfalse;Bb=(B)obj;return(比较逻辑);}publicoverrideintGetHashCode(){„„}2、DictionaryBase类A继承DictionaryBase类,通过DictionaryBase的成员Dictionary(IDictionary类型的接口),实现类A的Add(objectkey,类B)和Remove(objectkey,类B)方法:publicvoidAdd(objectkey,类BnewB){Dictionary.Add(key,newB);}publicvoidRemove(objectkey,类BnewB){Dictionary.Remove(key,newB);}在类A中建立索引可以按类似数组的方法访问。public类Bthis[objectindex]{get{return(类B)Dictionary[index];}set{Dictionary[index]=value;}}利用DictionaryBase的接口成员Dictionary实现类A的Contains()方法:publicboolContains(objectkey){returnDictionary.Contains(key);}3、迭代器对于继承CollectionBase类的A,使用foreach(BsourceBin类A对象){}对于继承DictionaryBase类的A,使用foreach(DictionaryEntrysourceBin类A对象){source.Value.}对于类迭代,使用方法GetEnumerator(),返回类型是IEnumerator;类成员迭代使用IEnumerable(),返回类型是IEnumerable;例如继承DictionaryBase类的A的迭代器,publicnewIEnumeratorGetEnumerator(){foreach(objectbinDictionary.Values)yieldreturn(B)b;}以后使用foreach循环时,可按照类似继承CollectionBase类的的方式使用。4、浅度复制与深度复制浅度复制:简单地按照成员复制对象可以通过派生于System.Object的MemberwiseClone()方法来完成,这是一个受保护的方法,但是很容易在对象上定义一个调用该方法的公共方法例如GetCopy()。这个方法的复制功能成为浅复制。浅拷贝是对引用类型拷贝地址,对值类型直接进行拷贝,但是string类例外,因为string是readonly的,当改变string类型的数据值时,将重新分配了内存地址。数组、类也是浅度复制,而结构体、数值型、枚举是深度复制。深度复制:需要深度复制的类A添加ICloneable接口,实现该接口的Clone()方法。publicobjectClone(){AnewA=newA();objec

a是****澜吖
实名认证
内容提供者


最近下载
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种基于双轨缆道的牵引式雷达波在线测流系统.pdf
一种胃肠道超声检查助显剂及其制备方法.pdf
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
201651206021+莫武林+浅析在互联网时代下酒店的营销策略——以湛江民大喜来登酒店为例.doc
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf
用于空间热电转换的耐高温涡轮发电机转子及其装配方法.pdf