Access methods in different classes but same assembly?
对vb.net中的类修饰符有点困惑
在我的项目中,我有一个具有多个类的双层。在每个类中,我都有一些通过公共共享修饰符公开的公共方法函数。
但是,在两层中的不同类中,我需要访问不同类中的方法,但我不希望将相同的命名空间(在两层中)公开给ui projectlayer。
我原以为friend修饰符会将该方法公开给同一命名空间中的类,但它给了我一个错误,即对非共享成员的引用requires和对象引用
友元修饰符(C中的内部修饰符)向同一程序集中的类公开成员。
在您的情况下,错误与友元修饰符无关。从错误消息中可以看出,您试图像访问共享方法一样访问实例(即非共享)方法。需要类的实例才能调用此类方法。
代码示例会很有帮助,因为它有助于更容易地判断应该更改什么。
举个例子。
实例方法
1 2 3 4 5 | Friend Class Foo Friend Sub Fubar() 'do something End Sub End Class |
用途:
1 2 | Dim fu As New Foo fu.Fubar() |
共享方法
1 2 3 4 5 | Friend Class Foo Friend Shared Sub Fubar() 'do something End Sub End Class |
用途:
1 | Foo.Fubar() |