在单独的类文件中为操作创建方法

本文关键字:操作 创建 方法 文件 单独 | 更新日期: 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。