首页 > 开发 > 综合 > 正文

对话整理:关于namespace!

2024-07-21 02:17:19
字体:
来源:转载
供稿:网友


收集最实用的网页特效代码!

 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 ,是这个吗

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

聪明,奖你一个三星★★★

 

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表