在过去的几年里,我已经从拥有一长串隐藏/显示的控件页面变为使用大量用户控件。我总是在同事之间就最佳实践进行一些讨论。
您是否应该拥有要填充的属性,或者使用参数化的子组件来加载控件中的信息?
我对使用参数的部分恐惧是因为我无法确保所有内容都会被填充。
使用接口的基本规则是什么?我从来没有创造过。我应该试试这个,还是继续使用“子负载”?
在过去的几年里,我已经从拥有一长串隐藏/显示的控件页面变为使用大量用户控件。我总是在同事之间就最佳实践进行一些讨论。
您是否应该拥有要填充的属性,或者使用参数化的子组件来加载控件中的信息?
我对使用参数的部分恐惧是因为我无法确保所有内容都会被填充。
使用接口的基本规则是什么?我从来没有创造过。我应该试试这个,还是继续使用“子负载”?
我不确定接口是否会对您有很大帮助。我的理解是,您将页面分解为包含其他控件的“复合”用户控件集,并且您想决定是否使用属性来设置值。
我想这实际上取决于用户控件的设计方式以及它们是否被动态添加到页面等(一种可能的情况)。我个人偏好在构造函数中指定内容或使用工厂方法创建控件。我在创作中负责确保一切都已设置好。我对属性的经验是,有时我会忘记设置某些东西而没有意识到自己的错误。您关于设置属性或使用子的观点,以及填充的所有内容对我来说没有多大意义。如果您有某种依赖关系并且需要加载其他内容,那么无论它是属性还是子,都可能发生这种情况。
我会参考任何有关 VB.NET/C#/OOP 的书来查看接口的语法。接口基本上描述了一个类的契约。如果您有 A 类和 B 类,并且都实现了一个名为 ITime 的接口,那么它们都将提供在 ITime 上定义的所有方法。他们仍然可以添加自己的方法,但至少必须包含 ITime 方法的实现(例如,我们可能将 GetDate()、GetCurrentTime() 作为 ITime 上的方法)。接口不会告诉 A 类或 B 类这些方法应该如何工作——只是它们的名称、参数和返回类型。在 OOP 书籍中查找继承,以获取有关接口继承与实现继承有何不同的更多信息。