对话整理:关于namespace!

本文详细解释了C#中namespace的概念及其用途,通过对比using指令帮助理解如何组织代码,并通过实例说明了不同文件中使用相同namespace的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 ,是这个吗 --------------------------------------------------------------- 开心就好 聪明,奖你一个三星★★★
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值