0

固定的

它在“form1.designer.cs”中的 6 个不同位置失败。它说我需要静态使用它,所以我将所有错误从“this.xxxx”更改为“form1.xxxx”并且它起作用了。不确定我是否完全理解我的所作所为......

固定的

对这里的编程相当陌生,只是在 C# 中处理一些基本的 OOP。我试图在我的 Button Click 事件中调用另一个类的方法。该方法传递一个参数,即用户输入的文本。我认为问题与静态方法有关,但参数是动态的,因为它是用户输入的。请帮帮我!

public partial class Form1 : Form
{
    string _yourName = textBox1.Text;

    public Form1()
    {
        InitializeComponent();
    }

    private void Button1Click(object sender, EventArgs e)
    {
        if (DogCheckBox.Checked)
        {
            AnimalNoise.Bark(_yourName);
        }

        if (CatCheckBox.Checked)
        {
            AnimalNoise.Meow(_yourName);
        }

        if (FishCheckBox.Checked)
        {
            AnimalNoise.Girgle(_yourName);
        }
    }
}




public class AnimalNoise 
{
    public static void Bark(String name) 
    {
        MessageBox.Show(name + " Bark");
    }

    public static void Meow(String name)
    {
        MessageBox.Show(name + " Meow");
    }

    public static void Girgle(String name)
    {
        MessageBox.Show(name + " Girgle");
    }
}
4

2 回答 2

3

首先,textBox1在实际创建之前您无法访问。您应该在点击回调中捕获名称。我认为你看到的错误可能是因为在你的代码中的某个地方你有别的东西叫AnimalNoise你必须确保没有别的东西叫做 AnimalNoise 并将 AnimalNoise 放在它自己的文件中。

于 2012-08-16T01:08:39.020 回答
0

您的确切问题没有明确说明,但我相信您从未设置过 textBox1.Text。在 ButtonClick 事件期间设置它。

    public Form1()
    {
        InitializeComponent();
    }

    private void Button1Click(object sender, EventArgs e)
    {
        string _yourName = textBox1.Text;

        if (DogCheckBox.Checked)
        {
            AnimalNoise.Bark(_yourName);
        }

        if (CatCheckBox.Checked)
        {
            AnimalNoise.Meow(_yourName);
        }

        if (FishCheckBox.Checked)
        {
            AnimalNoise.Girgle(_yourName);
        }
    }
}
于 2012-08-16T01:21:57.057 回答