没有给出的参数对应于'QuestionTwoScreen.QuestionTwoScreen(string,int)'所需的形式参数'name'

时间:2017-11-30 23:04:10

标签: c# visual-studio-2017

以下是我遇到的错误:

private void ShowNextQuestion()
    {
        timer1.Stop();
        Hide();
        new QuestionTwoScreen().Show();
    }

错误是new QuestionTwoScreen().show(); 错误CS7036:没有给出对应于'QuestionTwoScreen.QuestionTwoScreen(string,int)'所需的形式参数'name'的参数

我认为我没有做到这一点:

public QuestionOneScreen()
    {
        InitializeComponent();
        CenterToScreen();
        AllowDropping();
        ScoreLbl.Text = "Score: " + StartScreen.Player.Score;
        SetupTimer();
    }

我认为因为我在QuestionTwoScreen上有这个:

public QuestionTwoScreen(string name, int quizSelection)
    {
        InitializeComponent();
        CenterToScreen();
        ScoreLbl.Text = "Score: " + StartScreen.Player.Score;
        SetupQuiz(name,quizSelection);
    }

我无法看到我出错的地方,但我知道'QuestionOneScreen'没有(string,int)。这是为什么会出现错误或其他原因?

1 个答案:

答案 0 :(得分:1)

您的“QuestionTwoScreen”类构造函数需要在每次创建/实例化时为其提供两个对象(字符串名称,int quizSelection)。由于在构造类时没有传入任何值,因此抛出获取的错误。要解决此问题,您可以执行以下两项操作:

为缺少的参数添加值

new QuestionTwoScreen("Example Name", 0/*Example Int*/).Show();

为参数添加默认值

public QuestionTwoScreen(string name = String.Empty, int quizSelection = 0)
    {
        InitializeComponent();
        CenterToScreen();
        ScoreLbl.Text = "Score: " + StartScreen.Player.Score;
        SetupQuiz(name,quizSelection);
    }