【发布时间】:2011-12-22 12:02:36
【问题描述】:
我目前有一个主类和几个助手类。这两个类都在单独的类文件中,位于“类”文件夹中(在解决方案资源管理器下)。
Form1.cs
public static Classes.MAIN_APP app = new Classes.MAIN_APP();
// execute function to fetch MAIN_APP's variable
app.helper_1[0].get_variable_i_want();
类:
// main_app.cs
public partial class MAIN_APP {
public List<HELPER_CLASS_1> helper_1 = new ....
public int VARIABLE_I_WANT_TO_ACCESS;
}
// helper_1.cs
public partial class HELPER_CLASS_1 {
public int get_variable_i_want(){
return VARIABLE_I_WANT_TO_ACCESS;
}
}
目前我在 Form1.cs 文件中定义了 *VARIABLE_I_WANT_TO_ACCESS*。作为 public static int。令人惊讶的是,如果我将帮助程序类移动到 Form1.cs,变量就可以直接访问了。
我还尝试在 *HELPER_CLASS_1* 中定义 *MAIN_APP* 实例,但据我了解,它创建了 *MAIN_APP* 的另一个实例,并且我得到了新创建实例的值,而不是原始实例的值。
有什么更好的方法来确定这个范围?如何从子类访问我需要的变量?谢谢!
【问题讨论】:
-
这很混乱,在form1.cs 中你想访问MainApp.cs 中的一个变量,那么为什么要通过Helper 类来获取它呢?为什么不直接从 MainApp.cs 访问它
-
那么您是问如何从HELPER_CLASS_1 访问MAIN_APP 中的实例公共变量?
-
well helper 类实际上包含DataTable,而'get_variable_i_want()' 函数实际上是'init_data_tables'。该函数将根据母亲类 VARIABLE_I_WANT_TO_ACCESS 创建数据表列。
-
是的,达里尔,这就是我需要访问的内容