您所在位置: 网站首页 / C#学习心得.docx / 文档详情
C#学习心得.docx 立即下载
2025-08-25
约5.1万字
约78页
0
50KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

C#学习心得.docx

C#学习心得.docx

预览

免费试读已结束,剩余 73 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

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
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

C#学习心得

文档大小:50KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用