99 lines
2.4 KiB
C#
99 lines
2.4 KiB
C#
|
|
namespace Lesson21_面向对象相关_命名空间
|
||
|
|
{
|
||
|
|
using Lesson21_面向对象相关_命名空间.MyGame.UI;
|
||
|
|
using MyGame;//引用命名空间
|
||
|
|
using MyGame2;
|
||
|
|
#region 知识点一 命名空间基本概念
|
||
|
|
//概念
|
||
|
|
//命名空间是用来组织和重用代码的
|
||
|
|
//作用
|
||
|
|
//就像是一个工具包,类就像是其中的工具,都是声明在命名空间中的
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 知识点二 命名空间的使用
|
||
|
|
//基本语法
|
||
|
|
//namespace 命名空间
|
||
|
|
//{
|
||
|
|
// 类
|
||
|
|
//}
|
||
|
|
namespace MyGame
|
||
|
|
{
|
||
|
|
class GameObject
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
namespace MyGame
|
||
|
|
{
|
||
|
|
class Player : GameObject//同一命名空间中可以直接使用
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 知识点四 不同命名空间中允许有同名类
|
||
|
|
//eg:
|
||
|
|
namespace MyGame2
|
||
|
|
{
|
||
|
|
class GameObject
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//如果不同命名空间有同名类且都被使用
|
||
|
|
//只能通过 指明出处 来使用
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 知识点五 命名空间可以包裹命名空间
|
||
|
|
namespace MyGame
|
||
|
|
{
|
||
|
|
namespace UI
|
||
|
|
{
|
||
|
|
class Image
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
namespace Game
|
||
|
|
{
|
||
|
|
class Player : GameObject
|
||
|
|
{
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
#endregion
|
||
|
|
|
||
|
|
#region 知识点六 关于修饰类的访问修饰符
|
||
|
|
//public — 命名空间中的类 默认为 public
|
||
|
|
//internal — 只能在该程序集中使用
|
||
|
|
//abstract — 抽象类
|
||
|
|
//sealed — 密封类
|
||
|
|
//partial — 分部类
|
||
|
|
#endregion
|
||
|
|
internal class Program
|
||
|
|
{
|
||
|
|
static void Main(string[] args)
|
||
|
|
{
|
||
|
|
Console.WriteLine("Hello, World!");
|
||
|
|
#region 知识点三 不同命名空间中相互使用 需要引用命名空间或指明出处
|
||
|
|
//目前在 Lesson21_面向对象相关_命名空间 这个命名空间中
|
||
|
|
//如果要使用 MyGame 命名空间中的类
|
||
|
|
|
||
|
|
//需要引用命名空间(在最顶上和using system;一起)
|
||
|
|
//GameObject g = new GameObject();
|
||
|
|
|
||
|
|
//或者指明出处
|
||
|
|
//命名空间.类名
|
||
|
|
MyGame.GameObject g2 = new MyGame.GameObject();
|
||
|
|
MyGame2.GameObject g3 = new MyGame2.GameObject();
|
||
|
|
|
||
|
|
MyGame.UI.Image img = new MyGame.UI.Image();
|
||
|
|
|
||
|
|
Image img0 = new Image();//因为引用了 MyGame.UI 命名空间
|
||
|
|
#endregion
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|