这是UpdateGUI()的一部分:
DisplayOptions choice = (DisplayOptions)comboBox1.SelectedIndex;
seatMngr.GetSeatInfoStrings(choice, out strSeatInfoStrings);
listBox1.Items.Clear();
listBox1.Items.AddRange(strSeatInfoStrings);
编译器抱怨这一行(以及最后一行的参数):
seatMngr.GetSeatInfoStrings(choice, out strSeatInfoStrings);
我要做的是获取一个数组(strSeatInfoStrings)并将其放在一个列表框中。
有什么想法吗?
答案 0 :(得分:2)
您必须在调用之前添加该变量的声明:
DisplayOptions choice = (DisplayOptions)comboBox1.SelectedIndex;
string[] strSeatInfoStrings;
seatMngr.GetSeatInfoStrings(choice, out strSeatInfoStrings);
listBox1.Items.Clear();
listBox1.Items.AddRange(strSeatInfoStrings);
另一个意见是更改方法的签名并返回值,因此您可以编写此
DisplayOptions choice = (DisplayOptions)comboBox1.SelectedIndex;
listBox1.Items.Clear();
listBox1.Items.AddRange(seatMngr.GetSeatInfoStrings(choice));
答案 1 :(得分:0)
这更像是代码设计问题。方法名称GetSeatInfoStrings
清楚地表明它返回一些字符串。基于您对该方法的使用,它看起来像是这样声明:
public void GetSeatInfoStrings(string choice, out string[] result)
在我看来,最好这样宣布:
public void IEnumerable<string> GetSeatInfoStrings(string choice)
...然后像往常一样从方法中返回数组。 out
的主要用途,正如我所看到的那样,当您需要从方法返回多个值时。 Int32.TryParse
方法就是一个很好的例子;该方法返回bool
表示成功,out
参数将包含结果。
在你的情况下,好像你有一个结果,所以使用out
只会让人感到困惑。