我有一个快速的C#问题。
我有一个列表,我需要传递给一个方法。所以我这样做了:
Form2 f2 = new Form2(JogadoresList);
f2.novoJogo(JogadoresList);
另一堂课:
public void novoJogo(List<Jogadores> JogadoresList)
{}
但现在我想从
中调用 novoJogo 方法private void button1_Click(object sender, EventArgs e)
{
}
方法。如果我没有参数传递给它并且不想替换novoJogo的列表,我该如何调用 novoJogo 方法?谢谢。
答案 0 :(得分:1)
您可以调用novoJogo
传递null
值作为参数:
novoJogo(null);
或空列表:
novoJogo(new List<Jogadores>());
同样在novoJogo
方法中,您可以将List<>
定义为optional parameter:
public void novoJogo(List<Jogadores> JogadoresList=null)
{}
然后,你可以调用它而不在click事件中传递参数,如下所示:
private void button1_Click(object sender, EventArgs e)
{
novoJogo();
}
答案 1 :(得分:1)
方法需要列表,否则不需要。所以你问这个事实是......令人不安。
但是,您有几个选择。只需通过null
:
private void button1_Click(object sender, EventArgs e)
{
//Hopefully you held onto that reference!
f2.novoJogo(null);
}
或使用默认参数/可选参数:
public void novoJogo(List<Jogadores> JogadoresList = null)
{}
private void button1_Click(object sender, EventArgs e)
{
//Hopefully you held onto that reference!
f2.novoJogo();
}
在这两种情况下,确保novoJogo
可以传递给它的空列表(如果你不小心,NRE很容易到达这里)。并且考虑一下你的设计是否有意义,如果只有部分函数需要列表,那么它真的应该是两个函数而不是一个吗?
答案 2 :(得分:0)
将 JogadoresList 的访问级别更改为public static
或internal static
,以便您可以通过button1_click
访问它。