C# 语言和 .NET Framework 介绍

  博主并非原创,本来出自Microsoft官方.NET学习平台,链接:点击跳转至原文链接


 本文内容:

    1.  C#语言

    2.  .NET Framework平台体系结构

    3.  请参阅

C#是类型安全的面向对象的精妙语言,可帮助开发者生成在.NET Framework上运行的各种安全可靠的应用程序。C#可用于创建Windows客户端应用程序、XML Web service、分布式组件、客户端服务器应用程序、数据库应用程序等。

C#语言

C#语法高度重视表达。但学习起来也轻松简单。任何熟悉C、C++或Java的人都可以立刻认出C#的大括号写法。通常情况下,了解上述任何一种语言的开发者可以在很短的时间内开始使用C#高效工作。C#语法简化了C++的许多复杂操作,并提供强大功能,如可以为null的值类型、枚举、委托、lambda表达式和直接内存访问,而Java并不提供这些功能。C#不仅支持泛型方法和类型,提升了类型安全性和性能,还支持迭代器,以便集合类的实现者可以定义方便客户端代码使用的自定义迭代行为。语言集成查询(LINQ)表达式让强类型查询成为最高级的语言构造。

作为面向对象的语言,C#支持封装、继承和多形性这些概念。所有变量和方法(包括作为程序入口点玩的Main方法)都封装在类定义中。虽然类可能会直接继承一个父类,但可以实现任意数量的接口。若要用方法重写父类中的虚方法,必须使用override关键字,以免发生意外重定义。在C#中,结构就像是轻量级类,是可以实现接口但不支持继承的堆栈分配类型。

除了这些面向对象的基本原则,使用C#还可以通过以下多个创新语言构造更加轻松地开发这些软件组件 :

  • 封装的方法签名(名为“委托”),可以实现类型安全事件通知
  • 用作私有成员变量的访问器的属性
  • 在运行时提供有关类型的声明性元数据的特性
  • 内联的XML文档注释
  • 语言集成查询(LINQ,提供跨各种数据源的内置查询功能

如果需要与其他Windows软件(如COM对象或本机Win32 DLL)进行交互,可以在C#中通过名为“互操作”的过程来实现。借助互操作,C#程序可以执行本机C++应用程序可以执行的几乎任何操作。在直接内存访问非常关键的情况下,C#甚至支持指针和“不安全”代码的概念。

C#生成过程比C和C++更简单,比Java更灵活。没有单独的头文件,也不要求按特定顺序声明方法和类型。C#源文件可以定义任意数量的类,结构,接口和事件

可参阅下面的其他C#资源:

.NET Framework平台体系结构

C#程序在.NET Framework上运行,这是windows不可或缺的一部分,包括名为“公共语言运行时(CLR)”的虚执行系统和一组统一的类库。CLR时是由Microsoft执行的公共语言基础结构(CLI)的商业实现,CLI是作为执行和开发环境(语言和库在其中无缝合作)创建依据的国际标准。

用C#编写的源代码被编译成符合CLI规范的中间语言(IL)。IL代码和资源(如位图和字符串)存储在磁盘上名为“程序集”的可执行文件(扩展名通常为.exe或.dll)中。程序集包含一个介绍程序集的类型,版本,区域性和安全要求的清单。

当C#程序执行时,程序集会加载到CLR中,可能根据清单中的信息执行各种操作。然后,如果满足安全要求,CLR会直接执行实时(JIT)编译,将IL代码转换成本机指令。CLR还提供其他与自动垃圾回收,异常处理和资源管理相关的服务。CLR执行的代码有时称为“托管代码”(而不是“非托管代码”),被编译成面向特定系统的本机语言。下图展示了C#源代码文件,.NET Framework,程序集和CLR的编译时和运行时的关系。

语言互操作性时.NET Framework的一项重要功能。由于C#编译器生成的IL代码符合公共类型规范(CTS),因此C#生成的IL代码可以与.NET版本Visual Basic,Visual C++或其他任何符合CTS的超过20种语言生成的代码进行交互。一个程序集可能包含多个用不同.NET语言编写的模块,且类型可以相互引用,就像时用同一种语言编写的一样

除了运行时服务之外,.NET Framework还包括一个由4000多个已整理到命名空间中的类构成的扩展库,这些类提供各种实用功能,包括文件输入输出,字符串控制,XML分析和Windows窗体控件。典型的C#应用程序广泛使用.NET Framework类库来处理常见的“管道”零碎工作。

有关.NET Framework的详细信息,请参阅.NET Framework 概述

请参阅

如果您觉得本篇文章对您有所帮助,可以关注一下作者,非常感谢!


猜你喜欢

转载自blog.csdn.net/qq_41956142/article/details/93880713