1.1. C# 与 .NET 开发环境

1.1.1. C# 语言概述

C# 是微软推出的一种 类型安全、 面向对象 的编程语言,由 Anders Hejlsberg 领导设计, 2002 年随 .NET Framework 首次发布。

1.1.1.1. 核心特点

  • 托管执行:运行在 CLR (Common Language Runtime) 上,自动 GC

  • 类型安全:强类型语言,编译时捕获类型错误

  • 面向对象:类、继承、接口、委托

  • 函数式特性:LINQ、Lambda、模式匹配

  • 异步编程:async/await 原生支持

  • 跨平台:.NET Core / .NET 5+ 支持 Linux/macOS

1.1.2. .NET 平台演进

版本

发布时间

特性

状态

.NET Framework 4.0

2010

WPF 4.0, MEF

仅 Windows

.NET Framework 4.8

2019

最终版本

仅 Windows

.NET Core 3.1

2019

WPF/WinForms 支持

LTS(已结束)

.NET 6

2021

统一平台

LTS

.NET 8

2023

AOT 编译

LTS(当前)

.NET 9

2024

最新版本

STS

小技巧

对于新项目,推荐使用 .NET 8 或 .NET 9 (跨平台)。 对于 Windows 桌面应用(WinForms / WPF),.NET 6+ 提供了完整支持。

1.1.3. 开发环境搭建

1.1.3.1. 安装 Visual Studio 2022

1. 下载 Visual Studio 2022 Community(免费)
   https://visualstudio.microsoft.com/

2. 安装时选择工作负载(Workloads):
   - .NET 桌面开发(WinForms / WPF)
   - ASP.NET 和 Web 开发
   - 数据存储和处理

3. 可选:安装 ReSharper(JetBrains 代码分析工具)

1.1.3.2. 创建第一个项目

1. 文件 → 新建 → 项目
2. 搜索 "Console App" → 选择 "控制台应用 (.NET 8)"
3. 项目名称: HelloCSharp
4. 点击 "创建"
Program.cs
// 顶级语句(Top-level Statements,C# 9+)
Console.WriteLine("Hello, C#!");

// 传统写法(C# 8 及以前)
namespace HelloCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello, C#!");
        }
    }
}

1.1.4. 项目结构

HelloCSharp/
├── HelloCSharp.sln           # 解决方案文件
├── HelloCSharp.csproj        # 项目文件(SDK 风格)
├── Program.cs                # 入口文件
├── Models/                   # 数据模型
├── Services/                 # 业务逻辑
└── Properties/
    └── launchSettings.json

SDK 风格的项目文件:

HelloCSharp.csproj
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net8.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
</Project>

备注

ImplicitUsings 自动引入常用命名空间: System、System.Collections.Generic、System.Linq、 System.Threading.Tasks 等,无需手动 using。

1.1.5. C# 与 VB.NET / F# 对比

特性

C#

VB.NET

F#

风格

类 C 语法

类 BASIC 语法

函数式

类型系统

强类型

强类型

强类型 + 类型推断

不可变性

手动

手动

默认不可变

异步

async/await

Async/Await

async/await + 计算表达式

适用场景

通用

遗留系统维护

数据处理/科学计算

小技巧

学习路线建议:

  1. C# 语言基础(类型、控制流、OOP)

  2. .NET 框架(BCL、集合、文件 I/O)

  3. WinForms(入门简单,快速做工具)

  4. WPF(MVVM 模式,现代桌面应用)

  5. ASP.NET Core(Web 后端)