C# 内部类访问

本文关键字:访问 内部类 | 更新日期: 2023-09-27 18:32:33

在 WPF 中,当我将列表绑定到 DataGrid 并且 DataContext = new A();

class A
{
  int x;
  List<B> list;
  class B
  {
    B()
    {
      // want to use x here, but i can't
    }
  }
}

请提出一些建议

C# 内部类访问

无法访问它的原因是您无法直接从内部类访问类的实例变量。想一想;类 B 的实例如何知道使用类 A 的哪个实例来读取变量 X 的值?

为了访问它,您需要向 B 的 ctor 提供类 A 的实例。执行此操作的另一种方法(如果它适合您的场景)是将 x 设为静态,但我一般不建议这样做。

有关示例,请参阅以下内容:

class A
{
  int x;
  List<B> list;
  class B
  {
    B(A instance)
    {
      // Access x here using A.x;
    }
  }
  public void AddToList()
  {
     list.Add(new B(this));
  }
}