文档章节

C#语言的简单介绍和.NET Framework

阮少爷
 阮少爷
发布于 2016/07/14 09:25
字数 1668
阅读 34
收藏 0

C# 是一种简洁、类型安全的面向对象的语言,开发人员可以使用它来构建在 .NET Framework 上运行的各种安全、可靠的应用程序。 您可以使用 C# 来创建 Windows 客户端应用程序、XML Web services、分布式组件、客户端/服务器应用程序、数据库应用程序等等。 Visual C# 提供了高级代码编辑器、方便的用户界面设计器、集成调试器和许多其他工具,使您可以更轻松地在 C# 语言和 .NET Framework 的基础上开发应用程序。

 

System_CAPS_note注意

Visual C# 文档假设您了解基本的编程概念。 如果您完全是初学者,可能需要学习一下 Visual C# Express,它可以从网站下载。 您也可以利用有关 C# 的书籍和 Web 资源来学习实用编程技巧。

 

C# 语法表现力强,而且简单易学。 C# 的大括号语法使任何熟悉 C、C++ 或 Java 的人都可以立即上手。 了解上述任何一种语言的开发人员通常在很短的时间内就可以开始使用 C# 高效地进行工作。 C# 语法简化了 C++ 的诸多复杂性,并提供了很多强大的功能,例如可为 null 的值类型、枚举、委托、lambda 表达式和直接内存存取,这些都是 Java 所不具备的。 C# 支持泛型方法和类型,从而提供了更出色的类型安全和性能。C# 还提供了迭代器,允许集合类的实施者定义自定义的迭代行为,以便容易被客户端代码使用。 语言集成查询 (LINQ) 表达式使强类型查询成为了一流的语言构造。

作为一种面向对象的语言,C# 支持封装、继承和多态性的概念。 所有的变量和方法,包括 Main 方法(应用程序的入口点),都封装在类定义中。类可能直接从一个父类继承,但它可以实现任意数量的接口。 重写父类中的虚方法的各种方法要求 override 关键字作为一种避免意外重定义的方式。 在 C# 中,结构类似于一个轻量类;它是一种堆栈分配的类型,可以实现接口,但不支持继承。

除了这些基本的面向对象的原理之外,C# 还通过几种创新的语言构造简化了软件组件的开发,这些结构包括:

  • 封装的方法签名(称为“委托”),它实现了类型安全的事件通知。

  • 属性,充当私有成员变量的访问器。

  • 特性,提供关于运行时类型的声明性元数据。

  • 内联 XML 文档注释。

  • 语言集成查询 (LINQ),提供了跨各种数据源的内置查询功能。

在 C# 中,如果必须与其他 Windows 软件(如 COM 对象或本机 Win32 DLL)交互,则可以通过一个称为“互操作”的过程来实现。互操作使 C# 程序能够完成本机 C++ 应用程序可以完成的几乎任何任务。 在直接内存存取必不可少的情况下,C# 甚至支持指针和“不安全”代码的概念。

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

下列各项是其他 C# 资源:

 

.NET Framework 平台体系结构

C# 程序在 .NET Framework 上运行,它是 Windows 的一个不可或缺的组件,包括一个称为公共语言运行时 (CLR) 的虚拟执行系统和一组统一的类库。 CLR 是 Microsoft 对 Common Language Infrastructure (CLI) 的商业实现。CLI 是一种国际标准,是用于创建语言和库在其中无缝协同工作的执行和开发环境的基础。

用 C# 编写的源代码被编译为一种符合 CLI 规范的中间语言 (IL)。 IL 代码与资源(例如位图和字符串)一起作为一种称为程序集的可执行文件存储在磁盘上,通常具有的扩展名为 .exe 或 .dll。 程序集包含清单,它提供有关程序集的类型、版本、区域性和安全要求等信息。

执行 C# 程序时,程序集将加载到 CLR 中,这可能会根据清单中的信息执行不同的操作。 然后,如果符合安全要求,CLR 就会执行实时 (JIT) 编译以将 IL 代码转换为本机机器指令。 CLR 还提供与自动垃圾回收、异常处理和资源管理有关的其他服务。 由 CLR 执行的代码有时称为“托管代码”,它与编译为面向特定系统的本机机器语言的“非托管代码”相对应。 下图阐释了 C# 源代码文件、.NET Framework 类库、程序集和 CLR 的编译时与运行时的关系。

从 C# 源代码到计算机执行

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

除了运行时服务之外,.NET Framework 还包含一个由 4000 多个类组成的内容详尽的库,这些类被组织为命名空间,为从文件输入和输出、字符串操作、XML 分析到 Windows 窗体控件的所有内容提供了各种有用的功能。 典型的 C# 应用程序使用 .NET Framework 类库广泛地处理常见的“日常”任务。

有关 .NET Framework 的更多信息,请参见 Overview of the Microsoft .NET Framework。

© 著作权归作者所有

共有 人打赏支持
上一篇: 计算机网络概述
下一篇: 5.3LR(k)分析技术
阮少爷
粉丝 6
博文 163
码字总数 114438
作品 0
成都
高级程序员
私信 提问
【物联网智能网关-11】流式驱动之用户驱动(MDK C++开发)

微软体系的产品给人的感觉一直是易学易用,但是其执行性能却屡受诟病。所以一些对性能要求相对较高的硬件产品研发,一般都是采用linux体系的技术,或者是无操作系统开发,其开发语言也绝大数...

yefanqiu
2012/10/18
0
0
什么是C#编程语言明明白白学C#

什么是C#编程语言明明白白学C# C#是微软公司发布的一门面向对象的编程语言。它作为一门语言,则具备语言的四个要素。并且,它符合编程语言的四个要素的特性。同时,它作为面向对象的编程语言...

大学霸
2015/01/27
0
1
.net基本概念(2)

本博客( http://blog.csdn.net/livelylittlefish)贴出作者(三二一、小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正! .net基本概念 C# C#(发音为CSharp)是一种编程语言,用于构...

晨曦之光
2012/03/09
115
0
.NET的未来和VB、C#的前路(上、下) 收藏

.NET的未来和VB、C#的前路(上、下) 收藏 .NET的未来和VB、C#的前路(上) [CSDN 2月9日 编译]在去年微软的专业开发者大会上(Professional Developers Conference PDC 2008),微软就开发者在....

长平狐
2013/01/06
107
0
初识LinQ(1)

刚刚接触Linq,就查看关于单词缩写,从Msdn上看到关于它简短英文官方介绍: Language-Integrated Query (LINQ) is a groundbreaking innovation in Visual Studio 2008 and the .NET Framewor...

wbf961127
2017/11/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据剖析热点新闻:996、巴黎圣母院、奔驰维权为什么成为本周热搜

智能大数据专家表示:每一段重要的时期都会有一串隐秘的数字密码,请往下看: 本周共有50条新闻,作为嗅嗅的样本进行数据分析,得出以下统计图: 1.新闻热词折线统计图 在新闻标题及正文中,...

forespider
13分钟前
0
0
Coding and Paper Letter(六十四)

资源整理。 1 Coding: 1.交互式瓦片编辑器。 tile playground 2.R语言包autokeras,autokeras的R接口。autokeras是一个开源的自动机器学习的软件。 autokeras 3.斯坦福网络分析平台,用于网络...

胖胖雕
50分钟前
1
0
最简单的cd命令是个大坑!

BASH Shell 是大多 Linux 发行版的默认 shell,BASH 有一些自己的内置命令,cd 就是其中的一个。 在centos6里面,系统中不存在 cd 的二进制文件。但是你仍然可以运行该命令,这是因为 cd 是 ...

gaolongquan
今天
1
0
spring获取bean的几种方式

使用jdk:1.8、maven:3.3.3 spring获取Bean的方式 pom.xml文件内容: <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="......

Vincent-Duan
今天
2
0
一段话系列-Linux中IO的同步、异步、阻塞、非阻塞

首先我们框定一下背景,我们探讨的是Linux系统下的IO模型。 同步和异步是针对内核操作数据而言的,同步是指内核串行顺序操作数据,异步是指内核并行(或并发)操作数据,然后通过回调的方式通...

EasyProgramming
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部