2011-11-05 79 views
0

我目前有一个主类和一些辅助类。两个类都在单独的类文件中,位于“类”文件夹内(解决方案资源管理器下)。C#类作用域混淆

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; 
    } 

} 

目前我有* VARIABLE_I_WANT_TO_ACCESS *在Form1.cs中文件中定义。 as public static int。令人惊讶的是,如果我将帮助类移动到Form1.cs,变量可以直接访问。

我也尝试在* HELPER_CLASS_1 *中定义* MAIN_APP *实例,但据我了解,它创建* MAIN_APP *的另一个实例,我得到新创建的实例的值,而不是原来的实例。

什么是更好的方法来确定范围?我如何从子类访问我需要的变量?谢谢!

+0

多数民众赞成混淆,在form1.cs你想访问MainApp.cs中的变量,所以为什么要通过帮助类来获取它?为什么不直接从MainApp.cs访问它 –

+0

那么你是否问如何从HELPER_CLASS_1访问MAIN_APP中的实例公共变量? – Daryl

+0

井辅助类实际上包含DataTable,'get_variable_i_want()'函数实际上是'init_data_tables'。该函数将根据母类VARIABLE_I_WANT_TO_ACCESS创建数据表列。 – user1015551

回答

0

这是一个公共和静态变量。你应该可以访问它。使用完整的路径名