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

时间:2016-01-31 16:02:52

标签: c#

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

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

类似地:

booking.getTables(comboBoxTables);

使用控件作为参数是不好的做法?我已将所有textBox参数更改为字符串并传递textBox.Text但是如何使用其他控件执行类似的操作,或者有更好的方法可以执行此操作吗?

2 个答案:

答案 0 :(得分:3)

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

将UI对象传递给某种业务逻辑是有问题的。业务逻辑不应该对UI有任何了解。

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

答案 1 :(得分:1)

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