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 初级阶段 #

  1. 基础语法
  2. 数据类型
  3. 控制流
  4. 数组与集合

8.2 中级阶段 #

  1. 面向对象编程
  2. 异常处理
  3. 文件操作
  4. LINQ查询

8.3 高级阶段 #

  1. 泛型编程
  2. 异步编程
  3. 多线程
  4. 设计模式

8.4 应用阶段 #

  1. ASP.NET Core Web开发
  2. Entity Framework数据库
  3. 单元测试
  4. 项目实战

九、总结 #

C#是一门功能强大、应用广泛的现代编程语言:

特点 说明
现代 持续演进,语法先进
安全 类型安全,内存安全
跨平台 Windows/Linux/macOS
高效 高性能运行时
生态 完善的框架和工具

准备好开始学习C#了吗?让我们进入下一章,学习如何安装C#开发环境。

最后更新:2026-03-26