Skip to content

C# 简介

什么是 C#?

C#(读作"C Sharp")是微软公司开发的一种现代、通用、面向对象的编程语言。它是 .NET 平台的主要编程语言之一,结合了 C++ 的强大功能和 Visual Basic 的易用性。

C# 的发展历程

历史背景

C# 由微软的 Anders Hejlsberg 领导的团队开发,于 2000 年首次发布。Anders Hejlsberg 也是 Turbo Pascal 和 Delphi 的主要设计者。

版本演进

版本发布年份.NET 版本主要特性
C# 1.02002.NET 1.0基础面向对象特性
C# 2.02005.NET 2.0泛型、匿名方法、可空类型
C# 3.02007.NET 3.5LINQ、Lambda 表达式、自动属性
C# 4.02010.NET 4.0动态类型、可选参数
C# 5.02012.NET 4.5async/await 异步编程
C# 6.02015.NET 4.6字符串插值、空条件运算符
C# 7.02017.NET 4.7元组、模式匹配
C# 8.02019.NET Core 3.0可空引用类型、异步流
C# 9.02020.NET 5.0记录类型、顶级程序
C# 10.02021.NET 6.0全局 using、文件范围命名空间
C# 11.02022.NET 7.0原始字符串字面量、泛型特性
C# 12.02023.NET 8.0主构造函数、集合表达式

C# 的特点

1. 面向对象

C# 是一种纯面向对象的编程语言,支持:

  • 封装:通过访问修饰符控制成员访问
  • 继承:支持单继承和接口多实现
  • 多态:通过虚方法和接口实现
csharp
// 面向对象示例
public class Animal
{
    public virtual void MakeSound()
    {
        Console.WriteLine("动物发出声音");
    }
}

public class Dog : Animal
{
    public override void MakeSound()
    {
        Console.WriteLine("汪汪汪");
    }
}

2. 类型安全

C# 是强类型语言,在编译时进行类型检查:

csharp
int number = 42;        // 整数类型
string text = "Hello";  // 字符串类型
// string result = number + text; // 编译错误:类型不匹配
string result = number.ToString() + text; // 正确:显式转换

3. 内存管理

C# 具有自动内存管理功能:

  • 垃圾回收:自动回收不再使用的内存
  • 托管代码:运行在 .NET 运行时环境中
  • 安全性:防止内存泄漏和缓冲区溢出

4. 跨平台支持

现代 C# 支持跨平台开发:

  • Windows:传统强项
  • Linux:通过 .NET Core/.NET 5+
  • macOS:完整支持
  • 移动平台:通过 Xamarin 和 .NET MAUI

C# 的应用领域

1. 桌面应用程序

csharp
// Windows Forms 示例
public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Hello, Windows Forms!");
    }
}

2. Web 应用程序

csharp
// ASP.NET Core 示例
[ApiController]
[Route("api/[controller]")]
public class ProductsController : ControllerBase
{
    [HttpGet]
    public IActionResult GetProducts()
    {
        var products = new[] { "产品1", "产品2", "产品3" };
        return Ok(products);
    }
}

3. 移动应用程序

csharp
// Xamarin.Forms 示例
public partial class MainPage : ContentPage
{
    public MainPage()
    {
        InitializeComponent();
    }

    private void OnButtonClicked(object sender, EventArgs e)
    {
        DisplayAlert("提示", "Hello, Xamarin!", "确定");
    }
}

4. 游戏开发

csharp
// Unity 游戏开发示例
public class PlayerController : MonoBehaviour
{
    public float speed = 5.0f;

    void Update()
    {
        float horizontal = Input.GetAxis("Horizontal");
        float vertical = Input.GetAxis("Vertical");
        
        Vector3 movement = new Vector3(horizontal, 0, vertical);
        transform.Translate(movement * speed * Time.deltaTime);
    }
}

.NET 生态系统

.NET 平台架构

┌─────────────────────────────────────────────────────────┐
│                    应用程序层                            │
├─────────────────────────────────────────────────────────┤
│  WinForms  │   WPF   │ ASP.NET │ Xamarin │   Unity     │
├─────────────────────────────────────────────────────────┤
│                  .NET 基础类库 (BCL)                    │
├─────────────────────────────────────────────────────────┤
│                 公共语言运行时 (CLR)                     │
├─────────────────────────────────────────────────────────┤
│                    操作系统                              │
└─────────────────────────────────────────────────────────┘

核心组件

  1. 公共语言运行时 (CLR)

    • 内存管理
    • 垃圾回收
    • 异常处理
    • 类型安全
  2. 基础类库 (BCL)

    • 集合类
    • 文件 I/O
    • 网络通信
    • 数据访问
  3. 公共类型系统 (CTS)

    • 统一的类型系统
    • 跨语言互操作
    • 类型安全保证

C# 与其他语言的比较

C# vs Java

特性C#Java
平台主要 Windows,现支持跨平台跨平台
语法更现代,语法糖丰富相对保守
性能接近原生代码虚拟机执行
生态Microsoft 生态开源生态

C# vs C++

特性C#C++
内存管理自动垃圾回收手动管理
类型安全强类型安全相对宽松
开发效率中等
性能高(接近原生)最高

C# vs Python

特性C#Python
类型系统静态强类型动态弱类型
性能相对较低
学习曲线中等平缓
应用领域企业应用、游戏数据科学、AI

C# 的优势

1. 强大的开发工具

  • Visual Studio:功能丰富的 IDE
  • IntelliSense:智能代码补全
  • 调试器:强大的调试功能
  • 性能分析器:代码性能分析

2. 丰富的框架和库

csharp
// Entity Framework - ORM 框架
public class BlogContext : DbContext
{
    public DbSet<Blog> Blogs { get; set; }
    public DbSet<Post> Posts { get; set; }
}

// ASP.NET Core - Web 框架
public class Startup
{
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddControllers();
        services.AddDbContext<BlogContext>();
    }
}

3. 活跃的社区

  • NuGet:包管理器,数十万个包
  • GitHub:大量开源项目
  • Stack Overflow:活跃的问答社区
  • Microsoft Docs:详细的官方文档

4. 企业级支持

  • 长期支持 (LTS):稳定的版本支持
  • 向后兼容:良好的兼容性
  • 安全更新:及时的安全补丁
  • 技术支持:Microsoft 官方支持

学习 C# 的价值

职业发展

  1. 就业机会:企业级应用开发需求大
  2. 薪资水平:C# 开发者薪资相对较高
  3. 技能迁移:易于学习其他 .NET 语言
  4. 职业路径:从初级到架构师的清晰路径

技术成长

  1. 编程思维:培养面向对象思维
  2. 工程能力:学习大型项目开发
  3. 架构设计:理解企业级架构模式
  4. 技术视野:接触现代开发技术栈

本章小结

C# 是一门现代、强大、易学的编程语言,具有以下特点:

核心优势:

  • 面向对象的设计理念
  • 强类型安全保证
  • 自动内存管理
  • 跨平台支持能力
  • 丰富的生态系统

应用领域:

  • 桌面应用程序开发
  • Web 应用程序开发
  • 移动应用程序开发
  • 游戏开发
  • 企业级应用开发

学习价值:

  • 良好的就业前景
  • 完整的技术栈
  • 活跃的社区支持
  • 持续的技术发展

在下一章中,我们将学习如何搭建 C# 开发环境,包括 Visual Studio 的安装和配置。

延伸阅读

本站内容仅供学习和研究使用。