无法从另一个类访问变量:无效的表达式术语“public”

时间:2013-03-01 19:39:27

标签: c# winforms

Visual C#2008快递。 Windows窗体;两个文本框和一个按钮。在cmdEnter_Click事件中,我想检查ValidateForm类中的布尔变量是否为真(以处理文本框是否被清除)。

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,然后将public放在boolean变量的前面,以便我可以访问它们但是我收到了"无效的表达式术语public"错误。我的理解是,如果变量是公共的并且在公共类中,我应该能够从任何地方访问它?

1 个答案:

答案 0 :(得分:3)

方法内部的变量声明仅在该方法内可用,无论该类是否为公共。

如果要从公共类外部访问变量,请使用类级变量。在方法之外声明它。公共/私有修饰符在方法中无效,需要在类级别使用。

public bool bValidName;

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

根据您的想法,您可能希望将其设为属性,并且可以在get / set上使用修饰符。

public bool bValidName { get; set; }