C#内部类访问

时间:2014-12-01 13:07:33

标签: c# wpf

在WPF中,当我将列表绑定到DataGrid并且DataContext = new A()时,我经常遇到这个问题;

class A
{
  int x;
  List<B> list;

  class B
  {
    B()
    {
      // want to use x here, but i can't
    }
  }
}

请提出建议

1 个答案:

答案 0 :(得分:7)

您无法访问它的原因是您无法直接从内部类访问类的实例变量。想一想; 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));
  }
}