将控件作为参数传递是不好的做法吗?
本文关键字:控件 参数传递 | 更新日期: 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
。