整容说文库 > 程序代码 > 教育资讯

out参数问题 :控制当前方法离开之前 必须对输出参数"a"赋值。

来源:学生作业帮助网 编辑:整容说文库 时间:2019/10/23 06:10:58 程序代码
out参数问题 :控制当前方法离开之前 必须对输出参数"a"赋值。程序代码
public void getConfig(out string[] a)
{
try
{
a=new string[5];
a[0]="";
a[1]="";
a[2]="";
a[3]="";
a[4]="";
StreamReader sr;
if (File.Exists(".\\config"))
{


MessageBox.Show("找到配置文件");
sr=new 

StreamReader(".\\config");
for(int i=0;i<=4;i++)
{
a[i]=sr.ReadLine();
}
MessageBox.Show("得到配置项");
sr.Close();
}
else
{
    throw new Exception("错误!找不到配

置文件!");
a[0]="0";
}
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
return;
}

}

编译时出错: 控制当前方法离开之前 必须对输出参数"a"赋值。
我明明已经给a赋值了啊! 我把out改成ref 就可以了!
a=new string[5];
a[0]="";
a[1]="";
a[2]="";
a[3]="";
a[4]="";
放到try外面
public void getConfig(out string[] a)
{a=new string[5];
a[0]="";
a[1]="";
a[2]="";
a[3]="";
a[4]="";

try
{
StreamReader sr;
if (File.Exists(".\\config"))
{


MessageBox.Show("找到配置文件");
sr=new 

StreamReader(".\\config");
for(int i=0;i<=4;i++)
{
a[i]=sr.ReadLine();
}
MessageBox.Show("得到配置项");
sr.Close();
}
else
{
    throw new Exception("错误!找不到配

置文件!");
a[0]="0";
}
}
catch(Exception e)
{
    MessageBox.Show(e.Message);
return;
}

}
唉,正如楼上所言!在你执行完这个过程前确保a已经附过值就可以了.
咦?放在里面和放在外面有区别吗?
程序代码