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; } |