Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C类范围混淆_C#_Class_Scope_Partial - Fatal编程技术网

C# C类范围混淆

C# C类范围混淆,c#,class,scope,partial,C#,Class,Scope,Partial,我目前有一个主类和两个助手类。两个类都位于单独的类文件中,在“类”文件夹中(在解决方案资源管理器下) 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

我目前有一个主类和两个助手类。两个类都位于单独的类文件中,在“类”文件夹中(在解决方案资源管理器下)

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

}
//main\u app.cs
公共部分类主应用程序{
公共列表帮助程序\u 1=新建。。。。
公共int变量\u I\u希望\u访问;
}
//helper_1.cs
公共部分类帮助器\u类\u 1{
public int get_variable_i_want(){
返回变量_I_WANT_TO_ACCESS;
}
}
目前我在Form1.cs文件中定义了*VARIABLE_I_WANT_TO_ACCESS*。作为publicstaticint。令人惊讶的是,如果我将helper类移动到Form1.cs,变量就可以直接访问

我还尝试在*HELPER\u CLASS\u 1*中定义*MAIN\u APP*实例,但据我所知,它创建了*MAIN\u APP*的另一个实例,我得到了新创建的实例的值,而不是原始实例的值


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

它是一个公共的静态变量。您应该能够访问它。使用完整的路径名

这很容易混淆,在form1.cs中,您希望访问MainApp.cs中的变量,那么为什么要通过Helper类来获取它呢?为什么不直接从MainApp.cs访问它呢?那么你是在问如何从HELPER_类_1访问MAIN_应用中的实例公共变量吗?HELPER类实际上包含DataTable,而“get_variable_i_want()”函数实际上是“init_data_tables”。该函数将根据母亲类变量“我想要”到“访问”创建数据表列。是的,Daryl,这就是我需要访问的