还剩7页未读,继续阅读
文本内容:
文故翻译题目学生成绩管理系统地设计与实现学生姓名专业班级学号院〈系)软件学院指引教师(职称》完毕时间文献翻译书名C#设计模式作者姓名〈美)麦斯科VMetskerS.J.)著出处/-7T/中国电力出版社重要内容针对平常地软件开发问题设计模式提供了一种优雅地、通用地可重用解决方案.程序员可以通过设计模式组织程序中地对象,使其更易于编写和修改.本书正是一本设计模式地实用指南协助你采用最常用地模式来编写C#程序.《C#设计模式(附光盘)》由JamesW.Cooper编著,一方面简要扼要地简介了C#、面向对象编程、继承和UML图,然后分章描述了23种设计模式及各自地使用场合并阐明了模式在大型设计中地作用.每种模式地用法都配有相应地示例程序演示,这些程序收录在随书配套光盘中,可以直接运营、测试、编辑和使用.简介c#Thisfunctioncallscannotbedeterminedatcompi1etimevirtualfunctioncallsube1assaddressescannotbegiven.Thereforesuchafunctionaddressisinoperationperiodlatebindingbound.Theconclusionis:heavyjustalanguagefeatureandpolymoiphismithasnothingtodowiththeobjectoriented![.NETC#]ThedifferencebetweenrefandoutinC#Theoutmethodparametersontheparametersofkeywordmethodrefereneetothesamevariablemethod.Whencontrolpassesbacktothecallingmethod*anychangesmadetotheparameterinthemethodwillberef1ectedinthevariable.Whenyouwanttoreturnmultiplevalues»theoutmethodisveryusefu1statement.Methodsusingtheoutparametercanslil1retumavalue.AmethodcanbeC#编程语言是为开发微软公司地.NET框架上地程序而设计地.本章将简要简介.NET从何而来以及它地基本架构.这只是为了保证你从对H勺地一步开始,让我借此机会提示你一件也许显而易见地事情:C#地发音为seesharp.
1.
1.120世纪90年代后期地Windows编程在20世纪90年代后期,使用微软平台地Windows编程分化成许多分支.大多数程序员在使用Visua1BasicVB)、C或C++.某些C和C++程序员在使用纯Win32AP1但大多数人在使用MFCMicrosoftFound撕onClasses微软基本类库).其她人已经转向了COMComponent0bjectMdode1组件对象模型).a所有这些技术均有自己地问题.纯Win32API不是面向对象地,并且使用它地工作量比使用VIFC地更大.MFC是面向对象地,但是它却不一致并逐渐变得陈旧.COM虽然概念上简朴,但它地实际代码复杂,并且需要诸多丑陋地、不雅地底层基本代码.a所有这些编程技术地此外一种缺陷是它们重要针对桌面程序而不是Internet地开发.那时Web编程还是后来地事情,并且看起来和桌面编程非常不同.[.NET(C#J把attribute翻译成特性用来标记类把property翻译为属性性质,用于存取类地字段把markup翻译成标记,tag还是翻译成标签比较好[.NET(C#].NETFramework称为公共语言运营库CLR)或.NET运营库.它地核心是其运营库地执行环境.一般将在CLR地控制下运营地代码称为托管代码managedcode.在CLR执行开发地源代码之前需要编译它们为中间语言VIL)CLR再把IL编译为平台专用地代码.程序集(assembly》是涉及编译好地,面向.NETFramework地代码地逻辑单元A可执行代码和库代码使用相似地程序集构造.程序集地•种重要特性是它们涉及地元数据描述了相应代码中定义地类型和措施.[.NET(C#JASP页面有时显示比较慢,由于服务器端代码是解释性地不是编译地.a由于ASP代码不是构造化地因此难于维护,加上ASP不支持错误解决和语法检查.而ASP.NET页面是构造化地.每个页面都是一种继承了.NET类System.Wcb.UI.Page地类.4此外ASP.NET地后台编码功能容许进一步采用构造化地方式.a页面祈求是和WEB服务器在编译后高速缓存ASP.NET页面.[.NET(C#J覆盖Voverride)和重载voverload):覆盖是指子类重新定义父类地虚函数地做法.a重载,是指容许存在多种同名函数,而这些函数地参数表不同〈或许参数个数不同,或许参数类型不同,或许两者都不同).其实,重载地概念并不属于“面向对象编程”,重载地实现是编译器根据函数不同地参数表,对同名函数地名称做修饰a然后这些同名函数就成了不同地函数〈至少对于编译器来说是这样地).如,有两个同名函数functionfunc(p:integer integero和funclionfunc(p:string integer.4那么编译器做过修饰后地函数名称也许是这样地injfunc、str.funca对于这两个函数地调用,在编译器间就已经拟定了,是静态地记住是静态).也就是说,它们地地址在编译期就绑定了〈早绑定)3因此,重载和多态无关!真正和多态有关地是“覆盖当子类重新定义了父类地虚函数后,父类指针根据赋给它地不同地子类指针,动态〈记住:是动态!)地调用属于子类地该函数,这样地函数调用在编译期间是无法拟定地(调用地子类地虚函数地地址无法给出).因此这样地函数地址是在运营期绑定地〈晚邦定)q结论就是重载只是一种语言特性,与多态无关,与面向对象也无关![.NET(C#]aC#中ref和oul地区别措施参数上地out措施参数核心字使措施引用传递到措施地同一种变量.当控制传递回调用措施时,在措施中对参数所做地任何更改都将反映在该变量中.a当但愿措施返回多种值时,声明out措施非常有用.使用out参数地措施仍然可以返回一种值.一种措施可以有一种以上地oul参数.a若要使用ut参数,必须将参数作为out参数显式传递到措施.out参数地值不会传递到out参数.a不必初始化作为out参数传递地变量.然而,必须在措施返回之前为out参数赋值.a属性不是变量,不能作为out参数传递.措施参数上地ref措施参数核心字使措施引用传递到措施地同一种变量启当控制传递回调用措施时,在措施中对参数所做地任何更改都将反映在该变量中.a若要使用ref参数,必须将参数作为ref参数显式传递到措施.wef参数地值被传递到ref参数.传递到ref参数地参数必须最先初始化4将此措施与ut参数相比后者地参数在传递到out参数之前不必显式初始化属性不是变量,不能作为ref参数传递.两者都是按地址传递地使用后都将变化本来地数值qref可以把参数地数值传递进函数,但是out是要把参数清空a就是说你无法把一种数值从out传递进去地out进去后,参数地数值为空,因此你必须初始化一次.DesignandimpIementationofstudentachievementmanagementsystemDocumenttranslationAimingattheproblemofdaiIysoftwaredevelopmentdesignpatternprovidesanelegantgenericandreusableso1utions.Programmerscanthroughtheobjectdesignpatternorganizationprogrammakingiteasiertowriteandmodify.Thisbookisapractica1guidetothedesignpatternstohelpyouwiththemostcommonpatterntowriteC#program.TheC#designpatternwithCD-ROMbyJamesW.Cooperfirstofa11beconciseandtothepointintroducesC#object-orientedprogramminginheritanceandUMLgraphandthendescribes23kindsofdesignpatternsandapp1icationoccasionsofeachchapterandexpoundsthepatternsin1argedesignfunction.Eachkindofmodelusageareequippedwithcorrespondingexamp1edemonstrationprogramtheprogramincludedintheCD-ROMwithbookmatchingcanbedirect1yruntesteditanduse.Introductiontoc#C#programminglanguageisthe.NETframeworkforthedevelopmentoftheMicrosoftCorpontheprogramdesign.Thischapterwi11brieflyintroducethe.NETcomefromanditsbasicarchitecture.Justtomakesureyoustartfromastepintherightdirection1etmetakethisopportunitytoremindyouofapossiblesignificantsurfaceeasytoseethings:Cpronouncedseesharp.Windowsprogramminginthelate90century
1.
1.120InthelatenineteennintiesusingMicrosoftp1atformWindowsprogrammingdifferentiationintomanybranches.MostprogrammersuseVisualBasicVBCorC++.SomeoftheCandC++programmersintheuseofpureWin32toAP1butmostpeopleintheuseofMFCMicrosoftFoundonClassestearMicrosoftFoundationClassLibrary.OtherpeoplehavetumedtotheCOMComponentObjectMdodelcomponentobjectmode
1.Allofthesetechnologieshavetheirownproblems.Win32APIisnotapureobjectorientedanduseitsworkloadisbiggerthantheuseofVIFC.MFCisobjectorientedbutitisnotconsistentandgradua11ybecomeobsolete.AlthoughCOMissimpleinconceptbuttheactualcodeitscomplex1ow-levelcodeandneeda1otofuglyindecent.Anotherdisadvantageofal1theseprogrammingtechniquesaremain1yforthedesktopapplicationanddevelopmentisnotIntemet.ThenWebprogrammingorafterthingsand1ooksverydifferentfromcodingforthedesktop.[.NETC#]Translateattributeintocharacteristicusedtoidentifythec1assmethodThepropertytranslatedintopropertypropertyusedforfieldaccessc1assTranslatingmarkuptagtaglabelortranslatcdintobetter[.NETC#]Thecoreof.NETFrameworkisitsruntimeexecutionenvironment.Knownasthecommon1anguageruntimeCLRorthe.NETruntime.UsuaIIywi11rununderthecontroloftheCLRcodeknownasmanagedcodemanagedcode.BeforetheCLRimplementationofthedevelopmentofthesourcecodetocompilethemintointermediatelanguageILCLRandILcompiledintoaplatformspecificcode.Theassemblyassemblyiscompiledlogicunitforthe.NETFrameworkcode.Theexecutablecodeanddatabasecodeusingthesameassemblystrueture.Animportantcharacteristicoftheassemblysmetadatatheycontaindescribesthetypeandmethoddefinitionscorrespondingcode.[.NETC#]ASPpagesaresometimess1owerbecausetheserver-sidecodeisinterpretednotcompi1ed.BecausetheASPcodeisnotstructuredsodifficulttomaintainandASPdoesnotsupporterrorhand!ingandgrammarcheck.Whi1etheASP.NETpageisstructured.Eachpageisasuccessortothe.NETSystem.Web.UI.Pageclass.InadditiontobackgroundcodingfunctionASP.NETtoa11owfurtherusingastructuredway.Thepagerequestiscompi1edandWEBserverintheASP.NETcachepage.[.NETC#]Coveroverrideandheavyoverload:Coveragemeansthatsubc1assesredefinethevirtualfunctionoftheparentclassmethod.Over1oadingreferstoallowmultiplefunctionswiththesamenameandtheparametersofthesefunctionsaredifferentperhapsthenumberofparametersaredifferentperhapsdifferentparametertypesmaybebotharedifferent.InfacttheconceptofnheavyloaddoesnotbelongtotheobjectorientedprograminingHeavyload:thecompilcrimplemcntationisaccordingtotheparametertablefunctiondifferentthenameofthefunctionswiththesamenameasmodificationThenthesefunctionswiththesamenameasthedifferentfunctionatleastforthecompi1er.Forexampletherearetwofunctionswiththesamename:functionfuncp:integer:integer0andfunctionfuncp:string:integer.Thenthecompilerhadmodifiedthefunctionnamemaybethis:int_funcstr_func.Forthetwofunctionca11sthecompilerhavebeenidentifiedisstaticremembe亡static.ThatistosaytheiraddressisboundatcompiletimeearlybindingThereforeoverloadingandpolymorphism!Therealandpolymorphismisrelatedtothecover.Whentheclasstodefinevirtualfunctionstheparentclasstheparentclasspointeraccordingtoassignittothedifferentsubclasspointerdynamicremember:dynamic!Thefunctionca11belongstothesubclass。