0

修繕

「form1.designer.cs」の 6 つの異なる場所で失敗していました。静的に使用する必要があるとのことでしたので、すべてのエラーを「this.xxxx」から「form1.xxxx」に変更したところ、機能しました。自分がしたことを完全に理解しているかどうかはわかりませんが...

修繕

ここでのプログラミングはかなり新しく、C# でいくつかの基本的な OOP に取り組んでいます。ボタン クリック イベントで別のクラスからメソッドを呼び出そうとしています。このメソッドは、ユーザーが入力したテキストである 1 つのパラメーターを渡します。問題はメソッドが静的であることと関係があると思いますが、パラメーターはユーザーが入力するため動的です。私を助けてください!

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実際に作成する前にアクセスすることはできません。クリック コールバック内で名前をキャプチャする必要があります。あなたが見ているエラーは、コードのどこかに何か他のものがあるため、AnimalNoiseAnimalNoise と呼ばれるものが他にないことを確認し、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 に答える