1

ビジュアル C# 2008 エクスプレス。Windows フォーム; 2 つのテキスト ボックスと 1 つのボタン。cmdEnter_Click イベントで、ValidateForm クラスのブール変数が true かどうかを確認したい (テキスト ボックスがクリアされるかどうかを処理するため)。

private void cmdEnter_Click(object sender, EventArgs e)
{
     ValidateForm();
     txtName.Clear();
     txtAge.Clear();
}

public void ValidateForm()
{
     bool bValidName = ValidateName();
     bool bValidAge = ValidateAge();
     if (bValidName && bValidAge)
          MessageBox.Show("Entry will be added");               
     else
          MessageBox.Show("Please enter valid data");
}

ValidateFrom() 修飾子を private から public に変更し、boolean 変数の前に public を配置してアクセスできるようにしましたが、「Invalid expression term public」というエラーが表示されます。私の理解では、変数がパブリックであり、パブリック クラス内にある場合、どこからでもアクセスできるはずですか?

4

1 に答える 1

3

メソッド内で宣言された変数は、クラスがパブリックかどうかに関係なく、そのメソッド内でのみ使用できます。

パブリック クラスの外部から変数にアクセスする場合は、クラス レベルの変数を使用します。メソッドの外で宣言します。public/private 修飾子はメソッド内からは有効ではなく、クラス レベルで使用する必要があります。

public bool bValidName;

public void ValidateForm()
{
     bValidName = ValidateName();
     ...

やりたいことによっては、代わりにプロパティにしたい場合があり、get/set で修飾子を使用できます。

public bool bValidName { get; set; }
于 2013-03-01T19:43:33.107 に答える