关于c#:无法从另一个类访问变量:无效的表达式术语’public’

Can't access a variable from another class: Invalid expression term 'public'

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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放在布尔变量前面,这样我就可以访问它们,但收到"invalid expression term public"错误。我的理解是,如果变量是公共的,并且在公共类中,我应该能够从任何地方访问它?


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

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

1
2
3
4
5
6
public bool bValidName;

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

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

1
public bool bValidName { get; set; }