博主并非原创,本来出自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#资源:

  • 有关语言的使用概述,请参阅C#语言规范的第一章
  • 有关C#语言特定方面的详细信息,请参阅C#参考
  • 有关LINQ的详细信息,请参阅LINQ(语言集成查询)

.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 概述

请参阅

  • C#
  • Visual C#和 Visual Basic入门

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


C# 语言和 .NET Framework 介绍相关推荐

  1. 使用swift语言和xmpp framework开发聊天软件

    参考http://blog.csdn.net/kangx6/article/details/7740135系列博客,学习xmpp协议,使用苹果最新发布的swift语言和xmpp framework框架 ...

  2. R语言和RStudio安装,载入TXT、CSV和XLSX(利用RODBC)文件

    系列文章 R语言进行系统聚类分析并作图(数据来源国家统计局) R语言载入arules程序包的Epub数据集,使用Apriori算法,进行关联规则分析 R语言利用贝叶斯分类法(klaR程序包),训练数据 ...

  3. r语言和python-r语言和python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! r的取值范围是,r=1表示完全正相关! r=-1表示完全负相关! r=0表示完全 ...

  4. r语言和python-R语言 vs Python对比:数据分析哪家强?

    什么是R语言? R语言,一种自由软件编程语言与操作环境,主要用于统计分析.绘图.数据挖掘.R本来是由来自新西兰奥克兰大学的罗斯・伊哈卡和罗伯特・杰特曼开发(也因此称为R),现在由"R开发核心 ...

  5. c+和python的区别-c语言和python之间有什么区别

    c语言和python的区别是:1.Python是一种面向对象的解释型语言,通过缩进来表示语句体,在Python中每一条语句结尾后没有分号:2.C是一种面向过程的编译型语言,通过"{}&quo ...

  6. C语言和C++的区别

    c语言虽说经常和c++在一起被大家提起,但可千万不要以为它们是一个东西.现在我们常用的C语言是C89标准,C++是C++99标准的.C89就是在1989年制定的标准,如今最新的是C11和C++11标准 ...

  7. c语言excel转pdf,基于C语言和Excel软件下光速测量仪测量玻璃折射率.pdf

    基于C语言和Excel软件下光速测量仪测量玻璃折射率.pdf 基于语言和 软件下光速测量仪测量玻璃折射率 朱承君 王奇峰 芦立娟 张艳春 ( 浙江海洋学院机电学院 浙江 舟山 ) ( 收稿日期 ) 摘 ...

  8. r语言和rstudio_R和RStudio简介

    r语言和rstudio With increased computing power comes increased access to large amounts of freely accessi ...

  9. rstudio查询命令_R语言和RStudio的一些用法,常用命令等

    控制台: Up/down 回忆之前的命令 Ctrl+Up 回顾命令列表(可先输入前缀进行查找) 焦点: ctrl+ 移动焦点到source编辑器 ctrl+ 移动焦点到console ctrl+L 清 ...

最新文章

  1. gitlab run成功 但无法访问_gitlab 部署 管理
  2. SubSonic数据库操作
  3. 2022年最值得学习的 5 种编程语言,你有在学习吗?
  4. matlab生成exe-在没有安装matlab的电脑上运行matlab生成的exe
  5. 浅析权限认证中的有状态和无状态
  6. HLA程序:HelloWorld.hla
  7. css中怎么改变图片尺寸,CSS也可以改变图片幅面尺寸
  8. 软件测试-正交试验法
  9. 黑苹果驱动_黑苹果怎么更新驱动程序?
  10. CSS布局——圣杯布局、双飞翼布局
  11. RabbitMQ使用教程
  12. AMD define函数
  13. 用AkShare库获取A股股票数据—获取实时A股数据
  14. 谈谈大数据时代企业如何进行数据治理体系建设
  15. stl排序之sort函数
  16. html模拟百度人物百科,HTML MARC
  17. 说一说JS数据类型有哪些
  18. SpringBoot异常处理回滚事务详解(自动回滚、手动回滚、部分回滚)
  19. 十多家大厂Android面试真题锦集干货整理,成功拿下大厂offer
  20. 【VRP问题】基于matlab模拟退火算法求解带容量的VRP问题(多车型)

热门文章

  1. 易友八字合婚系统发布(支持同性基友拉拉兼容)1.01发布
  2. C#dataGridView 知识(示例代码)以及相关的经验技巧
  3. jquery视频播放器_jQuery插入QuickTime视频播放器
  4. 利用机器学习分析脑电数据(原理分析+示例代码+快速上手)
  5. 快速开发一个h5游戏
  6. html可以联机玩的小游戏,数学趣味小游戏,在家也可以和孩子一起玩
  7. 【分布式事务】内容较多CAP/BASE/2PC/3PC/TCC/Sega等等等等~,一次性捋清楚
  8. java骰子_Java实现的简单掷骰子游戏示例
  9. 基于jsp的bbs论坛-(7)jsp网页的实现
  10. 计算机系统的四种启动方式是,详解电脑为何有四种不同的启动设备教程