C#简介 #
一、C#概述 #
C#(读作"C Sharp")是由微软公司开发的一种现代、面向对象、类型安全的编程语言。C#源于C语言家族,具有C和C++的语法特点,同时吸收了Java的简洁性和安全性。C#运行在.NET平台上,是.NET生态系统的主要开发语言。
C#的设计目标是成为一种简单、现代、通用、面向对象的编程语言,它结合了各种编程语言的优点,同时避免了它们的缺点。
二、C#发展历史 #
2.1 诞生背景 #
C#由微软的Anders Hejlsberg(也是Turbo Pascal和Delphi的设计者)领导的团队开发,于2000年随.NET Framework 1.0一同发布。
text
C/C++ (语法基础)
↓
Java (简洁性、安全性)
↓
Delphi (组件化思想)
↓
C# (2000) ← Anders Hejlsberg
2.2 版本演进 #
| 版本 | 发布年份 | 重要特性 |
|---|---|---|
| C# 1.0 | 2002 | 面向对象、垃圾回收、类型安全 |
| C# 2.0 | 2005 | 泛型、匿名方法、可空类型 |
| C# 3.0 | 2007 | LINQ、Lambda表达式、自动属性 |
| C# 4.0 | 2010 | 动态类型、命名参数、可选参数 |
| C# 5.0 | 2012 | async/await异步编程 |
| C# 6.0 | 2015 | 自动属性初始化、字符串插值 |
| C# 7.0 | 2017 | 元组、模式匹配、本地函数 |
| C# 8.0 | 2019 | 可空引用类型、异步流 |
| C# 9.0 | 2020 | 记录类型、顶级程序 |
| C# 10.0 | 2021 | 全局using、文件范围命名空间 |
| C# 11.0 | 2022 | 原始字符串、通用数学 |
| C# 12.0 | 2023 | 主构造函数、集合表达式 |
2.3 .NET平台演进 #
text
.NET Framework (Windows专用)
↓
.NET Core (跨平台)
↓
.NET 5+ (统一平台)
↓
.NET 8 (当前LTS版本)
三、C#语言特点 #
3.1 面向对象 #
C#是纯粹的面向对象语言,支持封装、继承、多态三大特性。
csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public void SayHello()
{
Console.WriteLine($"你好,我是{Name}");
}
}
3.2 类型安全 #
C#是强类型语言,编译时会进行严格的类型检查。
csharp
int number = 10;
string text = "Hello";
number = text;
3.3 自动内存管理 #
C#通过垃圾回收器(GC)自动管理内存,开发者无需手动释放内存。
csharp
public void CreateObject()
{
var person = new Person();
}
3.4 跨平台 #
通过.NET(原.NET Core),C#程序可以在Windows、Linux、macOS上运行。
bash
dotnet run
3.5 丰富的语法特性 #
LINQ查询
csharp
var result = from p in people
where p.Age > 18
orderby p.Name
select p;
异步编程
csharp
public async Task<string> GetDataAsync()
{
using var client = new HttpClient();
return await client.GetStringAsync("https://api.example.com");
}
模式匹配
csharp
string result = obj switch
{
int i when i > 0 => "正数",
int i when i < 0 => "负数",
int i => "零",
_ => "未知类型"
};
四、C#的优势 #
4.1 强大的IDE支持 #
Visual Studio和Visual Studio Code提供了优秀的开发体验:
- 智能提示
- 代码重构
- 调试功能
- 热重载
4.2 完善的生态系统 #
- Web开发:ASP.NET Core
- 桌面开发:WPF、WinForms、MAUI
- 移动开发:Xamarin、MAUI
- 游戏开发:Unity
- 云服务:Azure SDK
4.3 优秀的性能 #
.NET运行时提供了高性能的执行环境:
- JIT编译优化
- 值类型支持
- Span
和Memory - AOT编译
4.4 活跃的社区 #
- GitHub上活跃的开源项目
- 丰富的NuGet包
- 完善的官方文档
五、应用领域 #
5.1 企业级应用 #
csharp
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet("{id}")]
public async Task<ActionResult<User>> GetUser(int id)
{
var user = await _userService.GetByIdAsync(id);
return Ok(user);
}
}
- 企业信息系统
- 电子商务平台
- 金融交易系统
5.2 Web开发 #
ASP.NET Core是高性能的Web框架:
csharp
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/hello", () => "Hello World!");
app.Run();
5.3 桌面应用 #
- WPF:现代UI框架
- WinForms:快速开发
- MAUI:跨平台桌面应用
5.4 游戏开发 #
Unity游戏引擎使用C#作为脚本语言:
csharp
public class PlayerController : MonoBehaviour
{
void Update()
{
float move = Input.GetAxis("Horizontal");
transform.Translate(move * speed * Time.deltaTime, 0, 0);
}
}
5.5 移动应用 #
使用MAUI或Xamarin开发跨平台移动应用:
csharp
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void OnCounterClicked(object sender, EventArgs e)
{
count++;
CounterLabel.Text = $"点击次数: {count}";
}
}
5.6 云服务与微服务 #
- Azure Functions
- AWS Lambda
- 微服务架构
六、C# vs 其他语言 #
| 特性 | C# | Java | Python | Go |
|---|---|---|---|---|
| 类型系统 | 静态强类型 | 静态强类型 | 动态强类型 | 静态强类型 |
| 运行方式 | JIT/AOT | JIT | 解释执行 | 编译执行 |
| 内存管理 | GC | GC | GC | GC |
| 跨平台 | 是 | 是 | 是 | 是 |
| 语法现代性 | 高 | 中 | 高 | 中 |
| 学习曲线 | 中等 | 中等 | 简单 | 简单 |
| 执行效率 | 高 | 中 | 低 | 高 |
七、为什么学习C# #
7.1 就业前景好 #
C#在企业级开发中需求量大:
- .NET开发工程师
- Unity游戏开发工程师
- 全栈开发工程师
7.2 学习曲线友好 #
C#语法清晰,IDE支持完善,适合初学者入门。
7.3 技术栈完整 #
从后端到前端,从桌面到移动,C#提供了完整的技术解决方案。
7.4 持续发展 #
微软持续投入,每年都有新版本发布,语言不断进化。
八、学习路线 #
8.1 初级阶段 #
- 基础语法
- 数据类型
- 控制流
- 数组与集合
8.2 中级阶段 #
- 面向对象编程
- 异常处理
- 文件操作
- LINQ查询
8.3 高级阶段 #
- 泛型编程
- 异步编程
- 多线程
- 设计模式
8.4 应用阶段 #
- ASP.NET Core Web开发
- Entity Framework数据库
- 单元测试
- 项目实战
九、总结 #
C#是一门功能强大、应用广泛的现代编程语言:
| 特点 | 说明 |
|---|---|
| 现代 | 持续演进,语法先进 |
| 安全 | 类型安全,内存安全 |
| 跨平台 | Windows/Linux/macOS |
| 高效 | 高性能运行时 |
| 生态 | 完善的框架和工具 |
准备好开始学习C#了吗?让我们进入下一章,学习如何安装C#开发环境。
最后更新:2026-03-26