C# 简介(C Sharp)
1. 什么是 C#?
C#(读作 C Sharp) 是由 微软(Microsoft) 开发的一种现代化、类型安全、面向对象的编程语言,主要用于开发基于 .NET 平台 的应用程序。
✅ C# 的设计灵感来源于 Java、C++ 和 Delphi,结合了它们的优点。
- 开发者:Microsoft
- 最初发布:2000 年
- 当前最新版本:C# 12(随 .NET 8 一起发布,2023 年)
- 主要平台:Windows、macOS、Linux(通过 .NET Core/.NET 5+)
📘 官方文档链接(推荐收藏):
👉 C# documentation – Microsoft Learn
2. C# 的发展简史
| 年份 | 版本 | 重要特性 |
|---|---|---|
| 2002 | C# 1.0 | 基础语法、类、接口、异常处理 |
| 2005 | C# 2.0 | 泛型、匿名方法、迭代器 |
| 2007 | C# 3.0 | LINQ、Lambda 表达式、自动属性 |
| 2010 | C# 4.0 | 动态类型、命名参数 |
| 2012 | C# 5.0 | async/await 异步编程 |
| 2017 | C# 7.x | 模式匹配、元组、局部函数 |
| 2020 | C# 9.0 | 记录类型(Record)、顶级程序入口 |
| 2023 | C# 12 | 默认接口实现、集合表达式等 |
🔗 详细版本历史:C# language versions – Microsoft
3. C# 的语言特性
C# 设计理念是“现代、安全、强类型”,以下是其核心语言特性:
- ✅ 面向对象(OOP):封装、继承、多态
- ✅ 类型安全:编译期检查、防止非法内存访问
- ✅ 垃圾回收机制:自动内存管理(由 CLR 控制)
- ✅ 异步编程支持:
async/await简化并发逻辑 - ✅ LINQ(语言集成查询):用于处理集合和数据源的强大工具
- ✅ 强大的标准库:System.* 命名空间提供丰富的类库
- ✅ 跨平台:通过 .NET Core 或 [.NET 6+/7/8] 实现 Linux/macOS 支持
4. C# 的应用场景
C# 是一门通用编程语言,应用范围非常广泛:
| 应用类型 | 说明 |
|---|---|
| 桌面应用 | 使用 Windows Forms、WPF |
| Web 应用 | 使用 ASP.NET Core |
| 移动开发 | Xamarin / MAUI(多平台 UI) |
| 游戏开发 | Unity 引擎(C# 是主要脚本语言) |
| 云计算 | Azure Functions、Web API |
| 物联网(IoT) | 结合 .NET Nano Framework |
| 微服务开发 | 使用 .NET + Docker/Kubernetes |
5. 与其他语言对比(C# vs Java vs C++)
| 特性 | C# | Java | C++ |
|---|---|---|---|
| 平台 | .NET | JVM | 原生编译 |
| 垃圾回收 | ✅ | ✅ | ❌(手动) |
| 异步支持 | ✅ async/await | ⚠️ CompletableFuture | ❌(需手动线程管理) |
| 跨平台 | ✅(.NET Core/MAUI) | ✅ | ✅ |
| 语法友好性 | ✅ 现代、简洁 | ✅ 类似 | ❌ 偏底层 |
| 游戏开发支持 | ✅ Unity | ❌ | ✅ Unreal/Cocos |
6. 编写一个简单的 C# 程序
using System;
class Program
{
static void Main()
{
Console.WriteLine("Hello, C#!");
}
}
✅ 可使用 Visual Studio、Visual Studio Code 或 JetBrains Rider 进行开发。
7. 官方与社区资源推荐
- 📚 官方文档:C# Guide – Microsoft Learn
- 📦 .NET 官网:https://dotnet.microsoft.com/
- 👨💻 C# 源码仓库:https://github.com/dotnet/csharplang
- 🌍 社区问答:https://stackoverflow.com/questions/tagged/c%23
8. 小结:C# 是谁适合学?
适合以下人群:
- 想开发 Windows 桌面应用或 Web 应用的开发者
- 希望进入游戏行业(Unity 引擎)
- 面向企业软件开发的程序员
- .NET 全栈工程师
- 关注类型安全、现代语法的人