我制作了一个基本上包含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 :(";
}
}
但是,文本框不再被识别。如何让这个新课程理解参考?
答案 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
)。