使用其他类/方法的类

时间:2017-10-21 20:37:39

标签: c#

我制作了一个基本上包含150个动作的程序,所有这些都是第一种形式。它已成为管理的噩梦,朋友建议将一组行动分成不同的类 理想情况下,从Do {1,2,3,4,5}Do {A,B}A{1,2,3}B{4,5}

为了练习,我决定尝试上两节课:

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    public void button_Click(object sender, RoutedEventArgs e)
    {
        if (checkBox1.IsChecked == true)
        {
            checkTrue();
        }
        else
        {
            checkFalse();
        }
    }

    public void checkTrue()
    {
        textBox.Text = "checkbox was checked";
    }

    public void checkFalse()
    {
        textBox.Text = "unchecked :(";
    }
}

我如何将其更改为将其设置为要调用的新类? 在创建新类“checkBool”时,我在新的.cs中编写了以下内容:

class checkBool
{
    public void checkTrue()
    {
        textBox.Text = "checkbox was checked";
    }

    public void checkFalse()
    {
        textBox.Text = "unchecked :(";
    }
}

但是,文本框不再被识别。如何让这个新课程理解参考?

1 个答案:

答案 0 :(得分:-2)

textbox实例无法识别checkbool,因为它不知道它。

“让它了解它”的一种快捷方法是将textbox作为参数传递给checkTrue()checkFalse()操作,如下所示:

class checkBool
{
    public void checkTrue(TextBox textBox)
    {
        textBox.Text = "checkbox was checked";
    }
    public void checkFalse(TextBox textbox)
    {
        textBox.Text = "unchecked :(";
    }
}

所以按钮点击处理程序将是:

public void button_Click(object sender, RoutedEventArgs e)
{
    checkBool cb = new checkBool();
    if (checkBox1.IsChecked == true)
    {
        cb.checkTrue(textbox);
    }
    else
    {
        cb.checkFalse(textbox);
    }
}

请注意,通过这样做,您将向您的班级checkBool引入依赖关系(现在取决于TextBox)。