C#:从外部作用域访问内部作用域中的变量

时间:2014-09-12 06:36:54

标签: c# while-loop

我正在while循环中创建一个类的实例 - 我需要while循环来获取我需要创建实例的输入参数(我必须从extern文件中读取它)。但后来我想从循环外部访问该实例。有可能吗?

public static <class> leseProjektDatei()
{

while ((zeile = datei.ReadLine()) != null)
       {
           Debug.WriteLine(zeile);
           string id, wetterdatei, fruchtfolge, bodenprofil, grundwasser;
           id = zeile.Substring(0, 5);
           wetterdatei = zeile.Substring(7, 14);
           fruchtfolge = zeile.Substring(22, 14);
           bodenprofil = zeile.Substring(37, 14);


           <class> projekt = new <class>(id, wetterdatei, fruchtfolge, bodenprofil);

            } 
 return <class>
}

5 个答案:

答案 0 :(得分:0)

你无法在循环之外检索它,尝试将其声明出循环,然后你就可以访问它了。

public static <class> leseProjektDatei()
{
 <class> projekt;
while ((zeile = datei.ReadLine()) != null)
       {
           Debug.WriteLine(zeile);
           string id, wetterdatei, fruchtfolge, bodenprofil, grundwasser;
           id = zeile.Substring(0, 5);
           wetterdatei = zeile.Substring(7, 14);
           fruchtfolge = zeile.Substring(22, 14);
           bodenprofil = zeile.Substring(37, 14);


            projekt = new <class>(id, wetterdatei, fruchtfolge, bodenprofil);

            } 
 return projekt;
}

答案 1 :(得分:0)

好像你需要List YourClasspublic static IEnumerable<YourClass> leseProjektDatei() { var list = new List<YourClass>(); while ((zeile = datei.ReadLine()) != null) { Debug.WriteLine(zeile); string id, wetterdatei, fruchtfolge, bodenprofil, grundwasser; id = zeile.Substring(0, 5); wetterdatei = zeile.Substring(7, 14); fruchtfolge = zeile.Substring(22, 14); bodenprofil = zeile.Substring(37, 14); list.Add(new YourClass(id, wetterdatei, fruchtfolge, bodenprofil)); } return list; } 个对象,以下代码应该有效:

{{1}}

答案 2 :(得分:0)

使用List<class>并在while循环中将新创建的class实例添加到其中。之后,每个创建的类都被存储并可以访问?

答案 3 :(得分:0)

是这样的:

public class Project{
    public string id{get;set;} 
    public string wetterdatei{get;set;}
    public string fruchtfolge {get;set;} 
    public string bodenprofil {get;set;} 
}


public static Project leseProjektDatei(){
Project projekt = new Project();
while ((zeile = datei.ReadLine()) != null)
       {
           projekt.id = zeile.Substring(0, 5);
           projekt.wetterdatei = zeile.Substring(7, 14);
           projekt.fruchtfolge = zeile.Substring(22, 14);
           projekt.bodenprofil = zeile.Substring(37, 14);

             } 
return projekt;
}

无论如何都要为课程命名。

答案 4 :(得分:0)

不,你不能在while循环之外检索对象。解决此问题的一种方法是将对象添加到循环外部声明的数组中,并在循环期间返回该数组的值。这假设您希望在while循环的每次迭代中创建一个新对象。但由于你的实施,目前还不清楚。