首页/ 第 5 章 · C# 编程基础/ 第 69 课
LESSON 69 · C# 编程基础

命名空间与 using

命名空间已掌握。下一课学枚举与结构体。

⏱ 约 11 分钟📊 难度:入门🗂 第 5 章 · C# 编程基础📍 第 69 / 300 课
课程进度
69 / 300

🎯本节学习目标

  • 理解命名空间作用
  • 掌握 using 引用
  • 了解自定义命名空间

🚀课程导读

脚本顶部的 using System.Collections.Generic; 是干嘛的?本课讲清楚命名空间与 using,以及代码“找得着东西”的机制。

命名空间是什么

代码的“抽屉分类”。

  1. 命名空间(namespace)用于把相关类归组,避免不同库里的同名类冲突。
  2. 例:UnityEngine 命名空间里有 Transform、Vector3 等;System 命名空间里有 Console 等。
  3. 全名写法:UnityEngine.Debug.Log(...) 才是完整路径。
  4. 【using 指令】把命名空间“引入”,之后就能直接用短名:using UnityEngine; 之后直接写 Debug.Log(...)。
  5. Unity 脚本自动带 using System; using System.Collections; using System.Collections.Generic; using UnityEngine;
  6. 【冲突】两个命名空间都有同名类时,用全名区分:System.Console 与 UnityEngine.Debug 不冲突。
  7. UnityEngine.Debug.Log 与 Debug 有歧义时会报错,用全名解决。
💡
using 只是“省打字”,不是把代码复制进来。

自定义命名空间与实战

组织你自己的代码。

  1. 自定义命名空间:在类外面包一层 namespace MyGame { public class Player { } }
  2. 使用时:用 using MyGame; 或写全名 MyGame.Player。
  3. 【实战】打开你的 PlayerData 脚本,在其顶部加:namespace MyGame { ... 把类包进去 ... }
  4. 保存编译。
  5. 在 PlayerTest 脚本顶部加 using MyGame;
  6. 这样 PlayerTest 里 new PlayerData() 依然可用(通过 using)。
  7. 若不加 using,就得写 new MyGame.PlayerData()。
  8. 体会命名空间对大型项目的组织价值:不同模块(战斗、UI)放不同命名空间。
  9. 【规范】项目常用命名空间:游戏名 + 模块名,如 MyGame.Combat。
⚠️
给类加命名空间后,若其他脚本没 using 也没写全名,会报“找不到类型”——记得引用。

常见错误与排查

错误:报错:找不到类型或命名空间?
原因:缺少 using 或写错命名空间
解决:检查类所在的命名空间,在引用处加 using 或用全名。

动手练习

课后小任务(做出来才算真的学会)

  • 说出 3 个 Unity 自动带的 using 是干什么的
  • 给自己的类加一个自定义命名空间并引用它

本节小结

命名空间已掌握。下一课学枚举与结构体。

完成打卡后,主站会实时更新你的学习进度 🎯

← 上一课接口 Interface