将控件作为参数传递是不好的做法吗?

本文关键字:控件 参数传递 | 更新日期: 2023-09-27 18:32:42

例如,我在Booking类中有一个方法,可以更新BookingForm中的dataGridView控件。

Booking booking = new Booking();
booking.getBookings(dataGridViewBooking);

同样地:

booking.getTables(comboBoxTables);

使用控件作为参数是不好的做法吗?我已经将所有textBox参数更改为字符串并传递了textBox.Text但是如何用其他控件完成类似的事情,或者有没有更好的方法来做到这一点?

将控件作为参数传递是不好的做法吗?

可以将控件作为参数传递。它们是可以传递的普通物体。

但是,将 UI 对象传递给某种业务逻辑是有问题的。业务逻辑不应知道有关 UI 的任何信息。

此外,如果可以选择传递textBox.Text则简化该方法的逻辑。可能,该方法不应关注从 UI 中提取数据。SRP适用。

通常,您尝试将控件与数据分开。 我建议你阅读BindingList. 创建一个中间记录类,其中包含要显示的所有字段,每个字段都是一个属性。然后创建一个。 BindingList该类型,并将其分配给网格的DataSource