访问不同类但相同程序集的方法?

时间:2014-08-09 16:11:34

标签: vb.net

对VB.NET中的类修饰符有点困惑

在我的项目中,我有一个包含多个类的BI层。在每个类中,我都有一些公共方法\函数,我通过public共享修饰符公开。

然而,在BI层的不同类中,我需要访问不同类中的方法,但是我不希望暴露给UI项目\层的相同名称空间(在BI层中)。

我认为Friend修饰符会将方法暴露给同一名称空间中的类,但它给出了一个错误,指出对非共享成员的引用需要和对象引用

2 个答案:

答案 0 :(得分:1)

Friend修饰符(C#中的内部)将成员公开给同一程序集中的类。

您的案例中的错误与朋友修饰符无关。从错误消息中,您似乎正在尝试访问实例(即非共享)方法,就好像它是共享方法一样。您需要该类的实例才能调用此类方法。

代码示例会有所帮助,因为它有助于更​​容易地说出应该更改的内容。

答案 1 :(得分:0)

采取以下示例。

实例方法

 Friend Class Foo
   Friend Sub Fubar()
     'do something
   End Sub
 End Class

用法:

 Dim fu As New Foo
 fu.Fubar()

共享方法

 Friend Class Foo
   Friend Shared Sub Fubar()
     'do something
   End Sub
 End Class

用法:

Foo.Fubar()