c#命名空间
来源:互联网 发布:网宿科技云计算 编辑:程序博客网 时间:2024/05/16 18:39
C#中有命名空间,Java中有包。命名空间我觉得就像是装类的一个箱子,知道这个箱子再找某个类就方便了。
在C#中,用法如下:
文件:lixueru.cs
namespace lixueru
{
public class lixueruSpace
{
}
public class Famile
{
}
}
在这里创建了命名空间lixueru,这里命名空间里有两个类lixueruSpace,Famile。
命名空间不需要声明,直接namespace lixueru就“创建”了一个名称为lixueru的命名空间,也没有public,private之类的标识符。
现在向lixueru中添加第三个类:lixueruSky。并且应用lixueruSpac和 family这两个类。
文件名称lixueruSky.cs
namespace lixueru
{
public class lixueruSky
{
lixueruSpac space;
Famile family;
}
}
lixueruSky中用到了lixueruSpac和 family两个类,直接用就行了。因为他们在同一个命名空间里。
那么什么时候不能直接用呢?
现在“创建”第二个命名空间。
namespace lixueru.Common
{
public class lixueruThink
{
lixueruSky sky;
}
}
这里“创建”了一个命名空间lixueru.Common,其中有一个类lixueruThink。
但是如果编译这段代码,会产生错误。因为 lixueruSky 并不在 lixueru.Common命名空间中,也就是说它们不在一个箱子里。
不告诉lixueruThink类命名空间是什么,谁知道到哪儿去找lixueruSky 。你不告诉我 箱子名称,我知道到那个箱子里找东西。
那么命名空间 lixueru.Common与 lixueru有什么关系呢?有,名称有点相似,就是这一点关系,其他什么关系也没有。lixueru.Common与 lixueru可以说互补牵连。
如果想在类lixueruThink中应用lixueruSky ,得先告诉我到哪儿才能找到lixueruSky 。
可以有两种方法。
第一种:
namespace lixueru.Common
{
public class lixueruThink
{
lixueru.lixueruSky sky;
}
}
这种方法告诉了 lixueruThink,lixueruSky是 lixueru里面的lixueruSky。到 lixueru中去找就找到了。
还有一种写法:
using lixueru;
namespace lixueru.Common
{
public class lixueruThink
{
lixueruSky sky;
}
}
这种写法是告诉程序,如果用到 lixueruSky 先在当前命名空间lixueru.Common中找,如果找不到,再到lixueru中找找看看。
using是一个关键字。是告诉代码,你可以到我指的地方【lixueru】找东西。如果程序在lixueru.Common中找到了lixueruSky ,它还是会去lixueru中看看有没有lixueruSky ,如果也有 ,程序就晕了,它不知道怎么办了,就会提示错误。
我现在想在lixueru.Common中也添加一个lixueruSky 类。如下:
namespace lixueru.Common
{
public class lixueruSky
{
}
}
现在直接用using就不行了,所以上边的用using的代码要修改:
using lixueru;
namespace lixueru.Common
{
public class lixueruThink
{
lixueru.lixueruSky sky;
}
}
现在程序就不晕了。
如果你觉得 lixueru太长,你还可以这样写上一段代码:
using LXR = lixueru;
namespace lixueru.Common
{
public class lixueruThink
{
LXR.lixueruSky sky;
}
}
不过,C#中命名空间并不是必须有的,如果我写一下面的代码,也正确:
using LXR= lixueru;
public class lixueruThink
{
LXR.lixueruSky sky;
}
只不过lixueruThink属于一个默认的命名空间而已
- C#中的命名空间
- C#命名空间详解
- C# 命名空间全
- C#命名空间
- C#命名空间
- C#命名空间介绍
- C#命名空间专题
- C#命名空间
- C# json命名空间
- C#命名空间
- C# 命名空间
- c#的命名空间
- c#中的命名空间
- c#中的命名空间
- C#命名空间
- C#命名空间问题
- C# 命名空间大全
- C#系统命名空间
- 用classwizard生成某个基类的继承类
- Java 封装的邮件发送类,可直接调用(基于Maven)
- DXP Shift+空格键 无效原因及解决
- C语言程序设计学习笔记之getchar()
- C# 利用反射查看程序集下的类
- c#命名空间
- Android 一步步
- HTML5 Audio/Video 标签,属性,方法,事件汇总
- HTTP协议
- 下载android4.4.2源码全过程(附已下载的源码)
- Android中的长度单位详解(dp、sp、px、in、pt、mm)
- 快速设计loading加载的gif图片,做一个属于自己的加载图
- 查询进程名并终止
- ABMultiValueCopyLabelAtIndex使用不当引起的内存泄漏