Создание переменной доступной для других методов - PullRequest
0 голосов
/ 23 мая 2011

У меня есть массив с именем pri1, я хочу, чтобы этот список массивов был доступен для других методов:

void downloader_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
        {
            if (e.Error == null)
            {
                Stream responseStream = e.Result;
                StreamReader responseReader = new StreamReader(responseStream);
                string response = responseReader.ReadToEnd();

                string[] split1 = Regex.Split(response, "},{");
                List<string> pri1 = new List<string>(split1);
                pri1.RemoveAt(0);
                string last = pri1[pri1.Count() - 1];
                pri1.Remove(last);

                List<string> str = pri1;
            }
        }

, поэтому мне было предложено сохранить его в переменной класса, что я и сделал:

private List<string> str = new List<string>();

к сожалению, элементы 'pri1' не смогли успешно перейти к 'str':

 void AddPrimaryMarkerGraphics(object sender, getPrimaryListCompletedEventArgs e)
        {
         foreach (string item in str)
          {

Поэтому мне было интересно, где в этих 3 шагах я ошибся?

Ответы [ 3 ]

3 голосов
/ 23 мая 2011

My думаю, означает, что вы по-прежнему объявили новую локальную переменную в вашем downloader_OpenReadCompleted вместо присвоения существующей переменной:

pri1.RemoveAt(0);
string last = pri1[pri1.Count() - 1];
pri1.Remove(last);
str = pri1;
1 голос
/ 23 мая 2011

Похоже, вы случайно объявили новую переменную str вместо присвоения существующему полю.

замените эту последнюю строку кода:

   List<string> str = pri1;

на эту:

   this.str = pri1;
0 голосов
/ 23 мая 2011

Вы делаете это неправильно.

List<string> str = pri1;

удалить над строкой

и

измените ваш последний foreach на следующий

 foreach (string item in pri)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...