没有参数的调用方法

时间:2015-01-22 22:39:11

标签: c# list function methods parameters

我有一个快速的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 方法?谢谢。

3 个答案:

答案 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 staticinternal static,以便您可以通过button1_click访问它。