在单独的类文件中为操作创建方法
本文关键字:操作 创建 方法 文件 单独 | 更新日期: 2023-09-27 18:13:54
我试图从不同的类调用方法,但没有成功。
我的程序中有一个CheckBox
checkBox1,我有一个按钮,当我点击它时,我想取消选中checkBox1。
如果我像这样把I方法放在同一个文件中,一切都正常:
public void close()
{
checkBox1.IsChecked=false;
}
但是如果我创建一个单独的类文件(类Close),并放在那里(在相同的命名空间中,并使用所需的元素)。没有办法让它工作。我尝试将类实例化为:
Close operation = new Close();
operation.close();
我也试图把close方法作为静态的,但我是不可能的,因为在我的实际程序中,我有很多变量给我一个错误,因为它们是"非静态的"(?)。
我注意到,如果我以这种方式调用方法,MessageBox.Show("Hello");
工作,但checkBox1仍然不变。我能做什么?
面向对象编程的一个基本原则是封装。这意味着一个类只知道并操作它的内部成员变量。
在您的例子中,类Close
不知道任何名为checkBox1
的控制变量,因此,方法close
(如上所述)不能操作。它甚至不能被编译!相反,当方法close
是Window类的一部分时,它会像预期的那样工作,因为控制变量checkbox1
是Window类的成员变量
然而,如果我理解你的意图,我建议你避免创建单独的类来处理用户界面操作。让使用UI元素的代码留在定义元素的类中。
CheckBox.IsChecked
返回bool
类型的值,如果你试图实际改变复选框的值(即选中或未选中),你需要使用不同的属性。
试题:
public void close()
{
checkBox1.Checked = true;
}
这是假设Close
类确实有一个CheckBox
控件在它里面…你的问题相当模糊,坦率地命名一个方法接近可能不是最好的做法,因为.Close()
是一个相当常见的方法在许多类在WinForms。