【问题标题】:C# class scope confusionC# 类范围混淆
【发布时间】: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 创建数据表列。
  • 是的,达里尔,这就是我需要访问的内容

标签: c# class scope partial


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 2020-05-21
    相关资源
    最近更新 更多