Причина вы не можете получить доступ к нему, что вы не можете получить доступ к переменной экземпляра класса из внутреннего класса напрямую. Подумайте немного об этом; как бы экземпляр класса B знал, какой экземпляр класса A использовать для чтения значения переменной x?
Чтобы получить к нему доступ, вам необходимо предоставить экземпляр класса A для ctor of B. Другим способом сделать это (если он подходит вашим сценариям) было бы сделать 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));
}
}
Вы определяете класс. Не вложенный экземпляр. – Aphelion
Существует, вероятно, более чистый способ делать то, что вы хотите, без этого. – crashmstr
Возможный дубликат [Невозможно получить доступ к вложенным классам или членам базового класса] (http://stackoverflow.com/questions/25123351/cannot-access-nested-classes-or-members-of-base-class) – t3chb0t