对VB.NET中的类修饰符有点困惑
在我的项目中,我有一个包含多个类的BI层。在每个类中,我都有一些公共方法\函数,我通过public共享修饰符公开。
然而,在BI层的不同类中,我需要访问不同类中的方法,但是我不希望暴露给UI项目\层的相同名称空间(在BI层中)。
我认为Friend修饰符会将方法暴露给同一名称空间中的类,但它给出了一个错误,指出对非共享成员的引用需要和对象引用
答案 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()