我使用的是Windows表单MainForm
,它调用以下内容:
FileSystemLayer FSL = new FileSystemLayer();
DatabaseLayer DBL = new DatabaseLayer();
我想做什么:
(在DatabaseLayer类中)
String SomeString = MainForm.FSL.AnotherString;
问题
由于其保护级别
,FileSystemLayer FSL无法访问
我试过
public FileSystemLayer FSL = new FileSystemLayer();
public DatabaseLayer DBL = new DatabaseLayer();
但它给出了结果
可访问性不一致:'DatabaseLayer'不易访问 字段'MainForm.DBL'
所以我希望有人能就如何在两个班级之间进行沟通给我一些建议。
答案 0 :(得分:0)
该消息告诉您,当主窗体的DBL
成员字段声明为public
时,类型本身(DatabaseLayer
)被声明为{{1}以外的其他内容},很可能是public
或private
因此,您可以通过修改DatabaseLayer类并使其成为internal
来解决问题。
也就是说,将功能封装到文件系统层和数据库层的主要目的是放松耦合。但是,如果你直接将一个暴露给另一个,并允许一个人打电话到另一个,而不是你把这个好处扔出窗外。您应该考虑采用其他方法来促进两层之间的沟通。
答案 1 :(得分:0)
似乎DatabaseLayer类被定义为internal,所以如果你想让这个类型的属性可以公开访问,你也应该公开类型(DatabaseLayer)public,或者你可以通过定义使你的属性不那么可见它是内部的。
但是,似乎你正在使用某种分层,这不是实现你所寻找的正确方法。
答案 2 :(得分:0)
在尝试了几个我无法应用的建议解决方案之后,我改变了类调用的层次结构,如下所述。感谢人们花时间帮我解决问题。
(Them Paint skillz)