advanced.c#.topzhujia

advanced.c#.topzhujia

ID:34572308

大小:487.73 KB

页数:62页

时间:2019-03-08

advanced.c#.topzhujia_第1页
advanced.c#.topzhujia_第2页
advanced.c#.topzhujia_第3页
advanced.c#.topzhujia_第4页
advanced.c#.topzhujia_第5页
资源描述:

《advanced.c#.topzhujia》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、AdvancedC#H.MössenböckUniversityofLinz,Austriamoessenboeck@ssw.uni-linz.ac.atContents•Inheritance•Interfaces•Delegates•Exceptions•NamespacesandAssemblies•Attributes•Threads•XMLComments1Inheritance2SyntaxclassA{//baseclassinta;publicA(){...}publicvoidF()

2、{...}}classB:A{//subclass(inheritsfromA,extendsA)intb;publicB(){...}publicvoidG(){...}}•BinheritsaandF(),itaddsbandG()-constructorsarenotinherited-inheritedmethodscanbeoverridden(seelater)•Singleinheritance:aclasscanonlyinheritfromonebaseclass,butitcani

3、mplementmultipleinterfaces.•Aclasscanonlyinheritfromaclass,notfromastruct.•Structscannotinheritfromanothertype,buttheycanimplementmultipleinterfaces.•Aclasswithoutexplicitbaseclassinheritsfromobject.3AsignmentsandTypeChecksclassA{...}classB:A{...}classC

4、:B{...}AssignmentsAa=newA();//statictypeofa:thetypespecifiedinthedeclaration(hereA)//dynamictypeofa:thetypeoftheobjectina(herealsoA)a=newB();//dynamictypeofaisBa=newC();//dynamictypeofaisCBb=a;//forbidden;compilationerrorRuntimetypechecksa=newC();if(ais

5、C)...//true,ifdynamictypeofaisCorasubclass;otherwisefalseif(aisB)...//trueif(aisA)...//true,butwarningbecauseitmakesnosensea=null;if(aisC)...//false:ifa==null,aisTalwaysreturnsfalse4CheckedTypeCastsCastAa=newC();Bb=(B)a;//if(aisB)stat.type(a)isBinthisex

6、pression;elseexceptionCc=(C)a;a=null;c=(C)a;//okÎnullcanbecastedtoanyreferencetypeasAa=newC();Bb=aasB;//if(aisB)b=(B)a;elseb=null;Cc=aasC;a=null;c=aasC;//c==null5OverridingofMethodsOnlymethodsthataredeclaredasvirtualcanbeoverriddeninsubclassesclassA{pub

7、licvoidF(){...}//cannotbeoverriddenpublicvirtualvoidG(){...}//canbeoverriddeninasubclass}OverridingmethodsmustbedeclaredasoverrideclassB:A{publicvoidF(){...}//warning:hidesinheritedF()ÎusenewpublicvoidG(){...}//warning:hidesinheritedG()Îusenewpublicover

8、ridevoidG(){//ok:overridesinheritedG...base.G();//callsinheritedG()}}•Methodsignaturesmustbeidentical-samenumberandtypesofparameters(includingfunctiontype)-samevisibility(public,protected,...).•Propertiesandindexerscanalsobeoverr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
相关文章
更多
相关标签