无法在C#中传递参数?

时间:2013-10-07 21:06:01

标签: c# user-interface parameters

好。对于iLab我的班级和我本周做的,我们正在使用GUI。我们必须设计的第二个程序是一个猜谜游戏。该程序应该随机生成一个0到100的数字,并传递该数字以便以后使用。这是我已有的代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Guessing_game
{
    public partial class Form1 : Form

    {
        int target();
        public Form1()
        {
            InitializeComponent();
            Random r = new Random();
            int target = r.Next(0, 100);
        }

        private void btnEvaluate_Click(object sender, EventArgs e)
        {
            if (txtGuess.Text == target)
            {

            }
        }
    }
}

}

请注意,“btnEvaluate_Click”区域尚未完成。这是因为程序应该可以访问的变量“Target”以后无法读取。

在阅读了一些评论之后,我能够调整代码,因此我又得到了一个错误:“字段'Guessing_game.Form1.target'永远不会被分配给,并且将始终具有其默认值0”如果有人我会尝试复制这个,我可以告诉你如何写它。 GUI应该有标签,文本框和按钮。按钮需要获取给“目标”的值,以便它可以检查用户对目标值的猜测。我正在使用Visual Studio 2010,如果有帮助的话。

4 个答案:

答案 0 :(得分:4)

试试这个,您需要声明target public

    Random r = new Random();
    int target = r.Next(0, 100);
    public Form1()
    {
        InitializeComponent();
    }

    private void btnEvaluate_Click(object sender, EventArgs e)
    {
        if (txtGuess.Text == target)
        {

        }
    }

答案 1 :(得分:1)

您必须将int target放在public Form()之外。在您的活动中,将target更改为target.ToString()

答案 2 :(得分:1)

括号{}定义范围。您已在构造函数(target)的范围内声明了Form1变量。因此,为了使它在整个类中可访问,您可以使它成为类级变量。例如

int target;
public Form1()
{
   InitializeComponent();
   Random r = new Random();
   target = r.Next(0, 100);
}

(虽然如果你打算再次使用Random对象,你也希望将它作为类级变量。此外,您正在尝试将int与字符串进行比较。它应该是

if (txtGuess.Text == target.ToString())
{

}

答案 3 :(得分:0)

那是因为target是构造函数的本地,因此无法在其他任何地方看到。在target中设置Form1字段。因为这是家庭作业,我会让你自己尝试一下;如果你还是难过,请告诉我们。