我开始使用C#,我创建了一个方法,从文本流向数组添加值并返回数组,如下所示:
private static string[] getLines(StreamReader myStream)
{
string[] lines;
while (!myStream.EndOfStream)
{
lines = new string[] { myStream.ReadLine() };
}
return lines;
}
Run Code Online (Sandbox Code Playgroud)
我在return参数中使用了未赋值的变量'lines'.
您需要初始化变量'lines',因为编译器会识别出循环包含零元素的可能性,并且您不能将未初始化的变量作为方法的值返回.但这是你遇到的最少的问题.您没有添加到阵列,事实上,一旦初始化,您就无法增加阵列的容量.您将看到,当此代码运行时,您将只获得一个长度为1的数组,该数组仅包含文本的最后一个元素.这是因为您不断重新初始化阵列.(注意'新'这个词?)
使用列表可以更好地提供您的方法:
List<string> lines = new List<string>();
while (!myStream.EndOfStream)
{
lines.Add(myStream.ReadLine());
}
return lines.ToArray();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |