基础结构

C# 的整体结构就好比 快递员通过地址1去找到某个具体的人


在一切开始之前,我们先看一下一个 C# 项目 的整体结构是什么样的。

整体结构

一个典型的 C# 项目通常可以抽象为如下层级关系:

  • 解决方案2

    • C# 项目3

      • C# 代码文件4

        • 命名空间5 - namespace

          • 6 - class

            • 构造函数 - constructor

            • 属性7 - property

            • 字段8 - field

            • 方法9 - method

              • 本地变量 - variable
            • 以及其它成员(构造函数、事件、索引器等)

可以理解为:

从外到内:范围越来越小,定位越来越精确

具体解析

命名空间 - namespace

命名空间用于 组织和管理代码,防止不同模块之间出现名称冲突。

它类似现实中的:

省 / 城市 / 街道

例如:

namespace 我的公司.我的项目.用户模块
{
    class User { }
}

这里表示:

  • 这是我的公司
  • 我的项目
  • 用户模块中的代码

命名空间的作用:

  • 避免类名冲突
  • 让代码结构更清晰
  • 便于大型项目管理

类 - class

类是 C# 中最核心的概念之一,它代表:

某一类事物的“模板”

比如:

  • User → 用户
  • Car → 汽车
  • Order → 订单

示例:

class User
{
}

可以理解为:

类 = 现实世界中的一种“对象类型”


成员 - member

类内部包含的内容统称为:

类成员(Members)

常见成员包括:

  • 字段8(类的内部自己用)
  • 属性7(给这个类以外的地方使用)
  • 方法9(行为)
  • 构造函数10(初始化这个类的时候调用)

结构总结

可以用一句话概括整个结构:

解决方案管理项目 → 项目包含代码文件 → 文件里定义命名空间 → 命名空间包含类 → 类包含成员 → 成员完成具体功能

也就是:

(解决方案 - Solution) → (项目 - Project) → (文件 - File) → (命名空间- Namespace) → (类 - Class) → (成员 - Member)

这就是 C# 程序最基础的“层级定位体系”。


为什么要这么设计

主要有三个原因:

  • 方便管理大型项目

    没有层级结构会导致代码混乱。

  • 避免名称冲突

    不同模块可以有同名类6

  • 提高可读性

    别人一眼就能看懂代码属于哪个模块。


  1. 这里的地址是类比:如果要查找某个人,会从他的省份(C#文件4 - .cs file) → 街道(命名空间5 - namespace) → 楼栋(6 - class) 来定位。 而这个人本身会具有很多属性(属性7 - property),同时也能做很多事情(方法9 - method)。

  2. 解决方案(.sln) 是多个项目的集合。

  3. C# 项目(.csproj) 是编译和管理代码的单位。

  4. C# 文件(.cs file) 是存储 C# 代码的文本文件,通常使用 UTF-8 编码,后缀名为 .cs

  5. 命名空间(namespace) 如其名,就是一个代码空间的名称,用于组织其中的6名并防止名称冲突。

  6. 类(class) 是对象的模板,是 C# 面向对象编程的核心 详细教程

  7. 属性(property) 是对字段8的封装,用来给外部访问,通常包含 get/set 详细教程

  8. 字段(field) 是类中直接存储数据的变量 详细教程

  9. 方法(method) 也叫函数,是类的行为定义,可以声明为 static 或实例方法 详细教程

  10. 构造函数(constructor) 是一种在创建对象时自动执行的特殊 方法9,用于给对象进行初始化,其名称必须与类名相同,且没有返回值类型 详细教程