Amien90 Ответов: 1

Я создал список в классе А и теперь хочу добавить что-то к этому списку в классе в


class A
{

static void Main(string[] args)
{
List<RootJson> eList = new List<RootJson>();
RootJson rootjson = new RootJson();

Libs.B.Get();

}

}


 public class B
    {
 public static void Get()
{
  rootjson.Hub = new List<Hub>();
  Hub hub = new Hub();
  
   hub.OS = "1.1";
  
  rootjson.Hub.Add(rootjson.hub);
  
}
}


проблема в том, что rootjson находится в классе A и недоступен в классе B. Как я могу сделать это доступным?
Я хочу сохранить создание rootjson в классе A,потому что я также хочу создать класс C, D и E, который также будет добавлять материал в rootjson.

Как мне объявить rootjson в классе B в этом случае?

Спасибо заранее

Что я уже пробовал:

я попытался объявить rootjson, но не нашел правильного синтаксиса. "играл" также с public, static void и т. д

[no name]

"Как мне объявить rootjson в классе B в этом случае", вы этого не делаете. Сдать существующий экземпляр класса B.

Amien90

И как мне это сделать?

[no name]

Точно так же вы передаете любую переменную в функцию.

Angelo L

Либо rootjson должен быть объявлен там, где он находится в области видимости для всех классов, в которых вы хотите его использовать, либо он должен быть входным для конструкторов или методов других классов, в которых вы его используете.

1 Ответов

Рейтинг:
2

OriginalGriff

Как говорит NotPoliticallyCorrect, единственный способ получить доступ к переменной класса А - это использовать экземпляр класса А, независимо от того, откуда осуществляется доступ к классу.

Это как автомобиль: у всех есть бардачок, но если вы положили свой телефон в бардачок своей машины, вы не ожидаете найти его в бардачке моей! Вам нужно получить доступ к правильному экземпляру автомобиля, чтобы получить свой телефон.

Я подозреваю, что вам нужно подумать о классах и потоках данных, так как ваш дизайн звучит несколько запутанно из того немногого, что вы описали.
Но... вы можете просто передать экземпляр класса A (или просто его список) в качестве параметра B. Get, чтобы он мог получить к нему прямой доступ.