入门篇1——c# 语言介绍
C# 编程语言创造自2002年,它伴随着.NET Framework 框架而来,是.NET的主要支持语言之一。c#是一门纯面向对象的语言,在C#语言中所有的类型都是对象,随着微软.NET 5的发布,.NET一统天下的时代已经来临,而掌握c#也就成了新晋开发者的必备技能之一。1、C#的起源C# 的发音是 C Sharp, # 读作 “sharp”(/ʃɑːp/),名称的灵感来自音乐上的音名 “C♯”
C# 编程语言创造自2002年,它伴随着.NET Framework 框架而来,是.NET的主要支持语言之一。c#是一门纯面向对象的语言,在C#语言中所有的类型都是对象,随着微软.NET 5的发布,.NET一统天下的时代已经来临,而掌握c#也就成了新晋开发者的必备技能之一。
1、C#的起源
C# 的发音是 C Sharp, # 读作 “sharp”(/ʃɑːp/),名称的灵感来自音乐上的音名 “C♯”,并且 # 形式 4个+号组成,所以当时创造C#的微软,借助这个名称和当时的老大C++套近乎,以便让当时众多的C++工程师投入到 C++++的怀抱。 我就是当时深(从)受(中)其(获)害(益)的一位。
c#语言经过这么多年的发展,已经开发了9个版本,下面是它的历史版本摘要:
| 版本 | 发布日期 | .NET框架最低要求 | Visual Studio 支持版本 | 主要特点 |
|---|---|---|---|---|
| C# 1.0 | 2002年1月 | NET Framework 1.0 | Visual Studio 2002 | 面向对象、类型安全、单一继承、属性支持、有点抄袭Java之嫌 |
| C# 2.0 | 2005年11月 | NET Framework 2.0 | Visual Studio 2005 | 增加了泛型、分部类、匿名方法、null值类型、迭代器、协变和逆变 |
| C# 3.0 | 2007年11月 | NET Framework 3.0 | Visual Studio 2008 | 自实现属性、匿名类型、LINQ、Lambda表达式、表达式树、扩展方法、分部方法、对象集合初始化值 |
| C# 4.0 | 2010年4月 | NET Framework 4.0 | Visual Studio 2010 | 动态绑定、泛型协变与逆变、命名参数、嵌入的可操作性 |
| C# 5.0 | 2012年8月 | NET Framework 4.5 | Visual Studio 2012 | 异步编程支持async/await |
| C# 6.0 | 2015年7月 | NET Framework 4.6、.NET Core 1.0 、 .NET Standard 1.0 | Visual Studio 2015 | 静态导入、异常筛选器、nameof、自动属性初始化表达式、null传播、索引初始化表达式 |
| C# 7.0 | 2017年3月 | NET Framework 4.6.2、.NET Core 2.0 、 .NET Standard 2.0 | Visual Studio 2017 | out变量、元组、析构函数、模式匹配、本地函数、ref |
| C# 8.0 | 2019年9月 | NET Framework 4.8、.NET Core 3.x、.NET Standard 2.1 | Visual Studio 2019 | readonly、模式匹配增强、using 声明、静态本地函数、null引用类型、异步流、等 |
| C# 9.0 | 2020年11月 | NET 5.0 | Visual Studio 2019 | Record、函数指针、本机大小的整数、静态匿名函数、协变返回类型、扩展 GetEnumerator 支持 foreach 循环、本地函数的属性 |
2、C#的特点
C# 语法高度凝练,学习起来也很简单轻松。 任何熟悉 C、C++、Java 或 JavaScript 的人都可以立即认出 C# 的大括号语法。 通常情况下,了解上述任何一种语言的开发者都可在短时间内使用 C# 高效工作。
当然,如果再配合上宇宙第一的编译器Visual studio,那编程体验,不是任何一门别的语言能比拟的。
- C# 可提供强大的功能,例如可以为 null 的类型、委托、Lambda 表达式、模式匹配和安全的内存访问;
- C# 支持泛型方法和类型,因此增强了类型安全性和性能;
- C# 可提供迭代器,使集合类的实现者可以定义客户端代码的自定义行为;
- 语言集成查询 (LINQ) 表达式让强类型查询成为最高级的语言构造;
- 作为面向对象的语言,C# 支持封装、继承和多态性这些概念。 虽然类可能会直接继承一个父类,但可以实现任意数量的接口。 若要用方法重写父类中的虚方法,必须使用 override 关键字,以免发生意外重定义;
- 在 C# 中,结构就像是轻量级类,是可以实现接口但不支持继承的堆栈分配类型;
- C# 还可提供记录,这些记录是主要用于存储数据值的类型。
- 垃圾自动回收
- 异步操作,爽上天的异步流。
使用 C# 还可以通过以下多个创新语言构造轻松地开发软件组件:
- 封装的方法签名(“委托”),可实现类型安全事件通知;
- 用作私有成员变量的访问器的属性;
- 在运行时提供有关类型的声明性元数据的特性;
- 内联的 XML 文档注释;
- 语言集成查询 (LINQ),提供跨各种数据源的内置查询功能;
- 模式匹配,通过检查数据类型和值启用控制流;
- 反射支持,可以访问任何动态实例、类的元数据信息。
可以通过名为“互操作”的过程与本机组件交互。 借助互操作,C# 程序可以执行本机 C++ 应用程序可以执行的几- 乎任何操作。 在直接内存访问的情况下,C# 支持指针和“不安全”代码的概念。
C# 生成过程比 C 和 C++ 更简单,比 Java 更灵活。 没有单独的头文件,也不要求按特定顺序声明方法和类型。
C# 源文件可以定义任意数量的类、结构、接口和事件。
3、NET平台体系
C# 程序必须在 .NET 平台体系上运行,而 .NET 是公共语言运行时 (CLR) 的虚执机系统和一组统一的类库。
如果有了解Java的同学,都会知道JVM,而.NET 就是类似JVM的虚拟运行环境。
用 C# 编写的源代码被编译成符合 CLI 规范的中间语言 (IL)。 IL 代码和资源(如位图和字符串)存储在程序集中,扩展名通常为 .dll。
执行 C# 程序时,程序集将加载到 CLR。 CLR 会直接执行实时 (JIT) 编译,将 IL 代码转换成本机指令。 CLR 可提供其他与自动垃圾回收、异常处理和资源管理相关的服务。 CLR 执行的代码有时称为“托管代码”(而不是“非托管代码”),被编译成面向特定系统的本机语言。
语言互操作性是 .NET 的一项重要功能。 C# 编译器生成的 IL 代码符合公共类型规范 (CTS)。 通过 C# 生成的 IL 代码可以与通过 .NET 版本的 F#、Visual Basic、C++ 或其他 20 多种与 CTS 兼容的任何语言所生成的代码进行交互。 一个程序集可能包含多个用不同 .NET 语言编写的模块,且类型可以相互引用,就像是用同一种语言编写的一样。
除了运行时服务之外,.NET 还包含大量库。 这些库支持多种不同的工作负载。 它们已整理到命名空间中,这些命名空间提供各种实用功能,包括文件输入输出、字符串控制、XML 分析、Web 应用程序框架和 Windows 窗体控件。 典型的 C# 应用程序广泛使用 .NET 类库来处理常见的零碎工作。
4、来吧,让我们Hello World
经典的Hello World,是每个语言展示其魅力的地方,让我们看看C#的Hello。
using System;
class Hello
{
static void Main(string[] args)
{
Console.WriteLine("Hello, World");
}
}
- using 用来引用命名空间,因为Console类在System命名空间下,因此我们引用它。命名空间像一个虚拟的文件夹,它包含类型和其他命名空间,是C#用来组织和管理程序的手段。
- Main方法是一个静态方法,也是程序的入口,其参数是程序的运行参数
- Console.WriteLine 方法是在控制台输出一行语句
5、奇妙之旅
C#语言的魅力有没有吸引到你啊?如果你感兴趣的话,可以和我一块踏上学习C#之路。

更多推荐



所有评论(0)