我可以在运行时指定对象类型吗?



如果我有一个通用的应用程序框架,用于为多种场景使用多个不同数据源的各种业务应用程序,那么是否可以在运行时使用反射指定所有对象或声明为object,或者这是不好的做法?

例如,我需要将任意数据源绑定到Winforms网格。完全通用地操作,在运行时评估属性和字段,而不是专门声明类型,这是好的实践吗?

场景:

Private sub ugdJobs(sender as object, e as InitializeLayoutEventArgs) handles ugdJobs.InitializeLayout
sender.datasource = something
End sub

相对
private sub ugdJobs(sender as object, e as InitializeLayoutEventArgs) handles ugdJobs.InitializeLayout
Dim jobdata as bindinglist(of DAL.jobs)(DAL.jobslist.getall()) 
Ugdjobs.datasource = jobdata
End Sub

明确声明ugdjobs.datasource的类型有什么意义?

无论如何,您要分配给的DataSource属性几乎肯定是Object类型,因此从数据绑定的角度了解所分配对象的特定类型没有任何好处。如果你想在其他地方使用那个对象,那么知道那个特定的类型可能会有一些好处。如果您绑定到ComboBox或类似的,那么您必须了解列表中的项目,以便设置DisplayMember和/或ValueMember属性,但是为数据源中的每个属性/列创建列的网格将为您完成这一切。

相关内容

  • 没有找到相关文章

最新更新