版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C#语法表现力强,而且简单易学。C#的大括号语法使任何熟悉C、C++或Java的人都可以立即上手。了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用C#高效地进行工作。C#语法简化了C++的诸多复杂性,并提供了很多强大的功能,例如可为null的值类型、枚举、委托、lambda表达式和直接内存访问,这些都是Java所不具备的。C#支持泛型方法和类型,从而提供了更出色的类型安全和性能。C#还提供了迭代器,允许集合类的实施者定义自定义的迭代行为,以便容易被客户端代码使用。在C#3.0中,语言集成查询(LINQ)表达式使强类型查询成为了一流的语言构造。作为一种面向对象的语言,C#支持封装、继承和多态性的概念。所有的变量和方法,包括Main方法(应用程序的入口点),都封装在类定义中。类可能直接从一个父类继承,但它可以实现任意数量的接口。重写父类中的虚方法的各种方法要求override关键字作为一种避免意外重定义的方式。在C#中,结构类似于一个轻量类;它是一种堆栈分配的类型,可以实现接口,但不支持继承。除了这些基本的面向对象的原理之外,C#还通过几种创新的语言构造简化了软件组件的开发,这些结构包括:封装的方法签名(称为“委托”),它实现了类型安全的事件通知。属性(Property),充当私有成员变量的访问器。属性(Attribute),提供关于运行时类型的声明性元数据。内联XML文档注释。语言集成查询(LINQ),提供了跨各种数据源的内置查询功能。在C#中,如果必须与其他Windows软件(如COM对象或本机Win32DLL)交互,则可以通过一个称为“互操作”的过程来实现。互操作使C#程序能够完成本机C++应用程序可以完成的几乎任何任务。在直接内存访问必不可少的情况下,C#甚至支持指针和“不安全”代码的概念。C#的生成过程比C和C++简单,比Java更为灵活。没有单独的头文件,也不要求按照特定顺序声明方法和类型。C#源文件可以定义任意数量的类、结构、接口和事件。下列各项是其他C#资源:有关该语言的充分常规介绍,请参见C#语言规范的第1章。有关C#语言特定方面的详细信息,请参见C#参考。有关C#语法与Java和C++语法的比较,请参见C#编程语言(针对Java开发人员)和C#(针对C++开发人员)。有关LINQ的更多信息,请参见语言集成查询(LINQ)。若要查找VisualC#团队提供的最新文章和资源,请访问VisualC#开发中心。
.NETFramework平台体系结构C#程序在.NETFramework上运行,它是Windows的一个不可或缺的组件,包括一个称为公共语言运行库(CLR)的虚拟执行系统和一组统一的类库。CLR是Microsoft的公共语言基础结构(CLI)的商业实现。CLI是一种国际标准,是用于创建语言和库在其中无缝协同工作的执行和开发环境的基础。用C#编写的源代码被编译为一种符合CLI规范的中间语言(IL)。IL代码与资源(例如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll。程序集包含清单,它提供有关程序集的类型、版本、区域性和安全要求等信息。执行C#程序时,程序集将加载到CLR中,这可能会根据清单中的信息执行不同的操作。然后,如果符合安全要求,CLR就会执行实时(JIT)编译以将IL代码转换为本机机器指令。CLR还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。由CLR执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。下图阐释了C#源代码文件、.NETFramework类库、程序集和CLR的编译时与运行时的关系。Attributes,whichprovidedeclarativemetadataabouttypesatruntime.InlineXMLdocumentationcomments.Language-IntegratedQuery(LINQ)whichprovidesbuilt-inquerycapabilitiesacrossavarietyofdatasources.IfyouhavetointeractwithotherWindowssoftwaresuchasCOMobjectsornativeWin32DLLs,youcandothisinC#throughaprocesscalled"Interop."InteropenablesC#programstodoalmostanythingthatanativeC++applicationcando.C#evensupportspointersandtheconceptof"unsafe"codeforthosecasesinwhichdirectmemoryaccessisabsolutelycritical.TheC#buildprocessissimplecomparedtoCandC++andmoreflexiblethaninJava.Therearenoseparateheaderfiles,andnorequirementthatmethodsandtypesbedeclaredinaparticularorder.AC#sourcefilemaydefineanynumberofclasses,structs,interfaces,andevents.ThefollowingareadditionalC#resources:Foragoodgeneralintroductiontothelanguage,seeChapter1oftheC#LanguageSpecification.FordetailedinformationaboutspecificaspectsoftheC#language,seetheC#Reference.ForacomparisonofC#syntaxtoJavaandC++,seeTheC#ProgrammingLanguageforJavaDevelopersandC#forC++Developers.FormoreinformationaboutLINQ,see
Language-IntegratedQuery(LINQ).TofindthelatestarticlesandresourcesfromtheVisualC#team,seetheVisualC#DeveloperCenter.
.NETFrameworkPlatformArchitectureC#programsrunonthe.NETFramework,anintegralcomponentofWindowsthatincludesavirtualexecutionsystemcalledthecommonlanguageruntime(CLR)andaunifiedsetofclasslibraries.TheCLRisthecommercialimplementationby
Microsoftofthecommonlanguageinfrastructure(CLI),aninternationalstandardthatisthebasisforcreatingexecutionanddevelopmentenvironmentsinwhichlanguagesandlibrariesworktogetherseamlessly.SourcecodewritteninC#iscompiledintoanintermediatelanguage(IL)thatconformstotheCLIspecification.TheILcodeandresources,suchasbitmapsandstrings,arestoredondiskinanexecutablefilecalledanassembly,typicallywithanextensionof.exeor.dll.Anassemblycontainsamanifestthatprovidesinformationabouttheassembly'stypes,version,culture,andsecurityrequirements.WhentheC#programisexecuted,theassemblyisloadedintotheCLR,whichmighttakevariousactionsbasedontheinformationinthemanifest.Then,ifthesecurityrequirementsaremet,theCLRperformsjustintime(JIT)compilationtoconverttheILcodetonativemachineinstructions.TheCLRalsoprovidesotherservicesrelatedtoautomaticgarbagecollection,exceptionhandling,andresourcemanagement.CodethatisexecutedbytheCLRissometimesreferredtoas"managedcode,"incontrastto"unmanagedcode"whichiscompiledintonativemachinelanguagethattargetsaspecificsystem.Thefollowingdiagramillustratesthecompile-timeandrun-timerelationshipsofC#sourcecodefiles,the.NETFrameworkclasslibraries,assemblies,andtheCLR.Languageinteroperabilityisakeyfeatureofthe.NETFramework.BecausetheILcodeproducedbytheC#compilerconformstotheCommonTypeSpecification(CTS),ILcodegeneratedfromC#caninteractwithcodethatwasgeneratedfromthe.NETversionsofVisualBasic,VisualC++,VisualJ#,oranyofmorethan20ot
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 轮胎平衡机市场发展预测和趋势分析
- 2024年废弃物处理与资源回收合同
- 2024年度大豆产业技术创新联盟合同
- 2024年度技术服务补充合同
- 家用清洁剂市场发展现状调查及供需格局分析预测报告
- 空化妆用滴管市场需求与消费特点分析
- 无菌罩布外科用市场发展现状调查及供需格局分析预测报告
- 2024年度体育赛事赞助与广告植入合同
- 贝雷帽市场需求与消费特点分析
- 2024年度保温板质量保证及施工安全合同
- 耳穴压豆治疗糖尿病
- 国际关系理论智慧树知到期末考试答案2024年
- (2024年)冠心病的诊断和规范化治疗
- 政协的知识课件
- GB/T 30489-2024城市轨道车辆客室侧门
- 卡西尼卵形线在高考中应用
- (高清版)TDT 1068-2022 国土空间生态保护修复工程实施方案编制规程
- 支委会报告对某某同志的审查情况【6篇】
- 机电安装给排水基础知识及识图课件
- 奇瑞汽车采购管理手册
- 电气设备安全操作培训
评论
0/150
提交评论