我在库中有一个类,没有root命名空间,firstone.dll:
namespace first
public partial class one
public sub fun()
end sub
end class
end namespace
我的第二个库,没有root命名空间,firstonetwo.dll,引用firstone.dll:
namespace first.one
public partial class two
public sub testfun()
first.one.fun() 'not recognized'
end sub
end class
end namespace
或
namespace first
public partial class one
public partial class two
public sub testfun()
first.one.fun() 'also not recognized'
end sub
end class
end class
end namespace
有没有办法在单独的dll中扩展类,仍然可以访问原始类?我不想继承该类只是扩展它。
答案 0 :(得分:0)
查看“扩展方法”http://msdn.microsoft.com/en-us/library/bb384936.aspx
这是唯一可以不继承的“扩展”形式。
答案 1 :(得分:0)
这是未经测试的
namespace first
public partial class one
public overridable sub fun()
end sub
end class
end namespace
单独的CLASS文件
Imports first
namespace one
public partial class fun
public overrides sub fun()
end sub
end class
end namespace
答案 2 :(得分:0)
问题是你有一个命名空间和一个具有相同名称的类,这会引起很多混乱。您的第一个示例是one
命名空间中名为first
的类,而您的第二个示例是two
命名空间中名为first.one
的类。仅仅因为它们的编写方式相同,两者之间存在很大差异。
Do not name a class the same as its namespace, Part One
修改强>
你的树看起来像这样:
VB在走树时遇到问题,并确定要查看哪个one
。