使变量可供其他方法访问

时间:2011-05-23 11:15:22

标签: c# silverlight variables arraylist

我有一个名为'pri1'的arraylist,我希望这个数组列表可用于其他方法:

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 个答案:

答案 0 :(得分:3)

我的猜测是您仍然在downloader_OpenReadCompleted中声明了一个新的局部变量,而不是分配给现有变量:

pri1.RemoveAt(0);
string last = pri1[pri1.Count() - 1];
pri1.Remove(last);
str = pri1;

答案 1 :(得分:1)

您似乎意外地声明了一个新变量str,而不是分配给现有字段。

替换最后一行代码:

   List<string> str = pri1;

用这个:

   this.str = pri1;

答案 2 :(得分:0)

你做错了。

List<string> str = pri1;

删除上一行

将您的上一个foreach修改为以下

 foreach (string item in pri)