C#是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在.NETFramework上运行的各种安全、可靠的应用程序。您可以使用C#来创建Windows客户端应用程序、XMLWebservices、分布式组件、客户端/服务器应用程序、数据库应用程序等等。VisualC#提供了高级代码编辑器、方便的用户界面设计器、集成调试器和许多其他工具,使您可以更轻松地在C#语言和.NETFramework的基础上开发应用程序。 C#语言 C#语法表现力强,而且简单易学。C#的大括号语法使任何熟悉C、C++或Java的人都可以立即上手。了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用C#高效地进行工作。C#语法简化了C++的诸多复杂性,并提供了很多强大的功能,例如可为null的值类型、枚举、委托、lambda表达式和直接内存存取,这些都是Java所不具备的。C#支持泛型方法和类型,从而提供了更出色的类型安全和性能。C#还提供了迭代器,允许集合类的实施者定义自定义的迭代行为,以便容易被客户端代码使用。语言集成查询(LINQ)表达式使强类型查询成为了一流的语言构造。 作为一种面向对象的语言,C#支持封装、继承和多态性的概念。所有的变量和方法,包括Main方法(应用程序的入口点),都封装在类定义中。类可能直接从一个父类继承,但它可以实现任意数量的接口。重写父类中的虚方法的各种方法要求override关键字作为一种避免意外重定义的方式。在C#中,结构类似于一个轻量类;它是一种堆栈分配的类型,可以实现接口,但不支持继承。 除了这些基本的面向对象的原理之外,C#还通过几种创新的语言构造简化了软件组件的开发,这些结构包括: 封装的方法签名(称为“委托”),它实现了类型安全的事件通知。 属性,充当私有成员变量的访问器。 特性,提供关于运行时类型的声明性元数据。 内联XML文档注释。 语言集成查询(LINQ),提供了跨各种数据源的内置查询功能。 在C#中,如果必须与其他Windows软件(如COM对象或本机Win32DLL)交互,则可以通过一个称为“互操作”的过程来实现。互操作使C#程序能够完成本机C++应用程序可以完成的几乎任何任务。在直接内存存取必不可少的情况下,C#甚至支持指针和“不安全”代码的概念。 C#的生成过程比C和C++简单,比Java更为灵活。没有单独的头文件,也不要求按照特定顺序声明方法和类型。C#源文件可以定义任意数量的类、结构、接口和事件。 .NETFramework平台体系结构 C#程序在.NETFramework上运行,它是Windows的一个不可或缺的组件,包括一个称为公共语言运行时(CLR)的虚拟执行系统和一组统一的类库。CLR是Microsoft对CommonLanguageInfrastructure(CLI)的商业实现。CLI是一种国际标准,是用于创建语言和库在其中无缝协同工作的执行和开发环境的基础。 用C#编写的源代码被编译为一种符合CLI规范的中间语言(IL)。IL代码与资源(例如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为.exe或.dll。程序集包含清单,它提供有关程序集的类型、版本、区域性和安全要求等信息。 执行C#程序时,程序集将加载到CLR中,这可能会根据清单中的信息执行不同的操作。然后,如果符合安全要求,CLR就会执行实时(JIT)编译以将IL代码转换为本机机器指令。CLR还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。由CLR执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。下图阐释了C#源代码文件、.NETFramework类库、程序集和CLR的编译时与运行时的关系。 语言互操作性是.NETFramework的一项主要功能。由于C#编译器生成的IL代码符合公共类型规范(CTS),因此从C#生成的IL代码可以与从VisualBasic、VisualC++的.NET版本或者其他20多种符合CTS的语言中的任何一种生成的代码进行交互。单一程序集可能包含用不同.NET语言编写的多个模块,并且类型可以相互引用,就像它们是用同一种语言编写的。 除了运行时服务之外,.NETFramework还包含一个由多个类组成的内容详尽的库,这些类被组织为命名空间,为从文件输入和输出、字符串操作、XML分析到Windows窗体控件的所有内容提供了各种有用的功能。 赞赏 长按澶嶆柟瀹夋伅棣欓厞鍖椾含鍝釜娌荤枟鐧界櫆椋庡尰闄㈡瘮杈冨ソ
|