程序结构…,弄丢了
本文关键字:丢了 结构 程序 | 更新日期: 2023-09-27 18:04:23
谁能告诉我最好的方法是什么?我的功课搞混了……放东西的地方
- 主表单:设置类并将dblocation传递给ApplicationEnvironment,从DataAccess中调用Getdata
- ApplicationEnvironment:存储其他类可能需要的全局变量…ie dbLocation
- DataAccess:这处理从表单调用获取数据并返回,它使用dbLocation
我跳转到form setup ApplicationEnvironment输入数据库位置
dblocation = "xxxx"
ApplicationEnvironment appSet = new ApplicationEnvironment();
appSet.dbLocation=@"S:'Database'database.accdb";
然后设置DataAccess类
DataAccess datAcc = new DataAccess();
DataSet ds;
ds= datAcc.GetData();
所以在数据访问类我想使用dbLocation是在ApplicationEnvironment类设置…我似乎不能称之为
public DataSet GetData(){
string mydatabase = ApplicationEnvironment.dbLocation;
错误"非静态字段、方法或对象引用是必需的财产"
应该是applicationenvironment . dbloction .get?
谁知道混合类的好例子?你真的很接近为你的应用程序创建一个良好的结构,但是有几个错误
结构表单不是设置应用程序其余部分的正确位置。这应该发生在主应用程序中,或者如果是大型任务,则应该在setup类中:
主应用程序:设置类。设置应用环境。把数据访问传递给主表单,把应用环境传递给数据访问。
主表单:从DataAccess中调用Getdata
ApplicationEnvironment:存储其他类可能需要的配置值…例如dbLocation ()不将它们称为全局变量;这些都是邪恶的东西,你不使用它们)
DataAccess:这处理从表单调用获取数据和返回,它使用dbLocation
代码在您的设置代码中(在主应用程序中),您将向感兴趣的各方公开系统的各个方面:
ApplicationEnvironment appSet = new ApplicationEnvironment();
appSet.dbLocation=@"S:'Database'database.accdb";
DataAccess datAcc = new DataAccess(appSet);
MainForm form = new MainForm(datAcc);
...
然后,在DataAccess中,您可以执行如下操作:
Class DataAccess
{
private readonly string _dbLocation;
public DataAccess(string dbLocation)
{
_dbLocation = dbLocation;
}
public SomeType GetData()
{
// use _dbLocation to access DB
}
}
您眼前的问题可以通过以下两种方法之一来解决(至少我要命名:))
创建ApplicationEnvironment的实例
public DataSet GetData(){
ApplicationEnvironment ae = new ApplicationEnvironment();
string mydatabase = ae.dbLocation;
使ApplicationEnvironment及其成员为静态
public static class ApplicationEnvironment
{
public static string dbLocation = @"S:'Database'database.accdb";
}
静态时,您现有的
调用public DataSet GetData(){
string mydatabase = ApplicationEnvironment.dbLocation;
。
关于静态类/方法的一些信息:https://msdn.microsoft.com/en-us/library/79b3xss3.aspx
错误:
"非静态字段、方法或属性需要对象引用"
基本上意味着你必须实例化一个ApplicationEnvironment
的对象来访问它的内部工作。静态类/方法没有这种限制,可以直接调用——尽管它们有它们自己的问题集