请教一下Namespace Module 和 Class shared 的区别

沐NeMo 2011-04-13 01:18:10
现在在项目A中有一个class如下:
Public Class DC

Public Shared Function GetHours() As Decimal
Return 10
End Function

End Class


在一个项目A中,我增加一个:Namespace如下:

Namespace DD

Module SystemParameters

Public Function GetHours() As Decimal
Return 10
End Function

End Module

End Namespace


两种方法的调用方法都是:
DC.GetHours
DD.GetHours
这两种方法有什么区别和优点,哪一种比较常用,对项目的影响、性能啊?谢谢!
...全文
237 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhddzz 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 linjimu 的回复:]
疑惑他們的異同。“这两种方法有什么区别和优点,哪一种比较常用,对项目的影响、性能啊?谢谢!”
[/Quote]
唯一的区别就是GetHours的完全限定名不同
对性能无任何影响
hhddzz 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 linjimu 的回复:]
6楼的兄弟:
如果在同一Namespace里面比较Module和class这个俺懂。
现在的问题是不同的Namespace但是调用的方法都相同的,所以才有点疑惑。
第二种写法是肯定又意义的。或者你现在还没有明白而已。

5楼的看了明白一点,但在某种情况下,牛刀也可以用来杀鸡的。
[/Quote]
SystemParameters位于名字空间DD中,从DD外部访问SystemParameters需要要用DD限定
根据VB的语法--在访问Module的公共成员时可以不加模块名
所以调用SystemParameters的成员时不必加上模块名,于是就成了DD.GetHours
如果SystemParameters是类,那类名就不能省略,必须写成DD.SystemParameters.GetHours
这和哪个名字空间有什么关系
为什么我说你那个没什么意义呢,你这样做和不刻意套名字空间,而是在调用时加上模块名不是一回事吗


至于效率差异的问题
名字解析必然是在编译时完成的
两段代码除了GetHours的完全限定名不同,没有任何区别




hhddzz 2011-04-14
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 linjimu 的回复:]
回8楼hhddzz:
如果是类,必须写成DD.SystemParameters.GetHours,这个谁都应该懂的。
不刻意套名字空间,这个说法不可否认。但是这种做法,是在香港的一个项目里面看到的。已经有这样使用这种做法了。或许空间命名方法DD里面的内容不多,才这样使用吧。
[/Quote]
现在的问题是不同的Namespace但是调用的方法都相同的,所以才有点疑惑。

那你究竟在疑惑什么啊
沐NeMo 2011-04-14
  • 打赏
  • 举报
回复
回8楼hhddzz:
如果是类,必须写成DD.SystemParameters.GetHours,这个谁都应该懂的。
不刻意套名字空间,这个说法不可否认。但是这种做法,是在香港的一个项目里面看到的。已经有这样使用这种做法了。或许空间命名方法DD里面的内容不多,才这样使用吧。
沐NeMo 2011-04-14
  • 打赏
  • 举报
回复
疑惑他們的異同。“这两种方法有什么区别和优点,哪一种比较常用,对项目的影响、性能啊?谢谢!”
沐NeMo 2011-04-13
  • 打赏
  • 举报
回复
6楼的兄弟:
如果在同一Namespace里面比较Module和class这个俺懂。
现在的问题是不同的Namespace但是调用的方法都相同的,所以才有点疑惑。
第二种写法是肯定又意义的。或者你现在还没有明白而已。

5楼的看了明白一点,但在某种情况下,牛刀也可以用来杀鸡的。
hhddzz 2011-04-13
  • 打赏
  • 举报
回复
要比也该和这个比吧……
你那么写没什么意义啊
    Module DC

Public Function GetHours() As Decimal
Return 10
End Function

End Module
Tosp2012 2011-04-13
  • 打赏
  • 举报
回复
NameSpace實質上就是一個大的類庫(Class Library),其中可以定義多個類、屬性和方法。
使用時,通常要 Imports NameSpace

Class是同一類對象的屬性和方法的集合。

一般都不會這樣使用NameSpace,有點小題大做。
通常都是Class.

純屬拙見,如有不妥,請指正。

-小蕾- 2011-04-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 teddy000 的回复:]
一个DC,一个DD
当然是简单的常用、多了就乱了。
[/Quote]
Betty,你想当的高明啊。
teddy000 2011-04-13
  • 打赏
  • 举报
回复
一个DC,一个DD
当然是简单的常用、多了就乱了。
水猿兵团五哥 2011-04-13
  • 打赏
  • 举报
回复
没研究过差别,应该差不多

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧