快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

对话整理:关于namespace!

 VFan Yan     

在名字空间中
using system这样的是引用了名字空间,
namespace Myname 这样是做什么用的?
---------------------------------------------------------------


开心就好

比如你叫VFan Yan
那么
namespace VFanYan是定义了你的名字
然后我想用你帮点忙,就可以
using VFanYan了
在java里面,namespace叫package

---------------------------------------------------------------
VFan Yan
我看见在多个程序里namespace了同一个名称,
例如A.cs
using system
namespace Myname
.
.
.


B.cs
using system
namespace Myname
.
.
.

这种情况又是怎么回事?

---------------------------------------------------------------
  开心就好
多个文件里面可以,多个文件组合体里面也可以的
namespace相称于指定了一个寻址方法。
告诉大家你可以在哪儿找到我。
但namespace不相称于物理形式存在,它们可以在不同的文件(这里面指的是输出文件,如.dll或者.exe),同时,在同一个Assembly里面也可以有多个namespace。
与Java不同,Java里面的package对应的是目录,所以,你假如用到java.io.****的话,你得建一个三层目录,特麻烦:(

  VFan Yan
这个就不明白了
即然其它程序要使用这个namespace,那为什么不用using  而又namespace一遍?难道说namespace Myname=using Myname?

开心就好
不准确
namespace==你给自己取个名字
using==我叫你的名字

---------------------------------------------------------------

VFan Yan
Look!
A.cs
using system
namespace Myname
.
.
.
B.cs
using system
namespace Myname
.
.
.
C.cs
using system
using Myname

这时的Myname是指A.cs里的还是B.cs里的?

---------------------------------------------------------------
开心就好
应该这么说
  namespace==报上所属小组
using==使用这个小组中的所有人员
所以A声明了我是Myname小组的人,而B声明也是Myname小组的人,则C声明使用Myname小组的人,则它即可以使用B,也可以A。
namespace不是类,也不是对象,它只是类与及其它类型声明的一个包容体,为了让这些类排列的更有顺序,更加利于别人寻找。尽最大程度排除重名。
你是Dev-club的VFan Yan,但不排除新浪上也有一个VFan Yan不是你。
所以你的全称是Dev-Club.VFanYan
namespace Dev-Club
{
     public class VFaneYan{
     }
     public class 开心就好{
     }
     public class  飞鸟{
     }
}
注:以上举例并不是异常正确,因为这里面的类其实在现实中都是对象:)

---------------------------------------------------------------
  VFan Yan
我这样理解对不对?

A.cs
using system
namespace Myname

{
     public class VFanYan{
     }
    }

B.cs
using system
namespace Myname
{
public class 开心就好{
     }
     public class  飞鸟{
     }
}

C.cs
using system;
using Myname;
VFanYan New_VFanYan=new VFanYan()
开心就好 New_开心就好=new 开心就好()
飞鸟 New_飞鸟= new 飞鸟()

---------------------------------------------------------------


开心就好

不过C有毛病呀,你那个语句必须含在一个方式(或者属性)中,而那些方式得含在类中,而类必须含在一个namespace里面
---------------------------------------------------------------
VFan Yan
这里的namespace 又是什么意思?

A.cs
using system
namespace Myname

{
     public class VFanYan{
     }
    }

B.cs
using system
namespace Myname
{
public class New_VFanYan:VFanYan

}


B.cs里怎么知道VFanYan是什么呀?



---------------------------------------------------------------


  开心就好
两种方式
1.在同一个Project里面
2.在两个Project里面,但B所在的Project已经Add Refrenerce了A所在的Project或者其输出的Assembly
  
你仔细看看源代码
一个类中可能using了很多其它的namespace,但是一个类肯定就只能包括在一个namespace中。
---------------------------------------------------------------
VFanYan
明白了,它是在同一个project里,它最后是这样的csc/target:library /out:Myname.dll A.cs B.cs ,是这个吗

---------------------------------------------------------------
开心就好

智慧,奖你一个三星★★★

 



返回类别: 教程
上一教程: Visual Studio.NET企业级结构设计版评测
下一教程: C#编程让Outlook乖乖交出帐户密码

您可以阅读与"对话整理:关于namespace!"相关的教程:
· 给Asp.Net初学者的关于继续和多态性的例子
· 【转载】关于Windows.Net和VisualStudio.Net的一些观察
· .net关于企业Excel报表的生成
· 用VB.NET打造NameSpace(转贴)
· NET环境下有关打印页面设置、打印机设置、打印预览对话框的实现(二)
    微笑服务 优质保证 索取样品