C# 类别及;功能选择泛型
我有一个名为C# 类别及;功能选择泛型,c#,.net,wpf,generics,C#,.net,Wpf,Generics,我有一个名为IFilterDataSourceAdapter的接口。此接口公开用于适应传入数据源(IEnumerable、iCollectionView或DataTable或DataView或XmlDocument)的端点,并提供直观过滤它们的功能 它接受数据源中字段的名称 生成过滤器字段的列表,每个字段公开三个属性 字段名称 基于字段的类型筛选运算符列表-等于、包含、小于等 提供的值字段 GUI可以使用此FilterField列表来显示过滤器面板 适配器将提供自己的ICommand,以从GUI
IFilterDataSourceAdapter
的接口。此接口公开用于适应传入数据源(IEnumerable
、iCollectionView
或DataTable
或DataView
或XmlDocument
)的端点,并提供直观过滤它们的功能
过滤器字段的列表,每个字段公开三个属性
字段名称
基于字段的类型
筛选运算符列表-等于、包含、小于等
提供的值字段
GUI可以使用此FilterField
列表来显示过滤器面板
ICommand
,以从GUI执行筛选器调用IEnumrable
,则在应用筛选器时,我将生成AsQueryable()
Linq表达式,并将查询的IEnumrable
列表返回李>
ICollectionView
I,我将生成Filter
delegate并刷新集合视图DataTable
或DataView
类型,我将生成DataFilter
基于字符串的查询并刷新数据表或数据视图XDocument
,它将生成XPath
表达式和XElements
过滤列表泛型
来执行此操作,并相应地区分过滤器
命令执行
我们是否可以有一个单独的接口IFilterDataSourceAdapter
来约束其成员(字段和函数),因为T是IEnurable
或ICollectionView
或DataTable
或DataView
或XDocument
编辑:
我当前的实现实际上是针对每种类型的数据源使用5种类型的asbtract适配器,它们工作得很好。它们都实现了IFilterDataSourceAdapter。但我认为,我们可以使IFilterDataSourceAdapter
具有约束,而不是更适合每个适配器实现的设计。所以我所拥有的可能已经很好了
可能是我想得太多了 可能不是答案,但评论太长了。。。根据我对您问题的理解,我想说您现在拥有的(具有不同接口的公共基础接口,每个接口特定于一个数据源)很好 我具体指的是你问题的这一部分: 我们可以有一个单一的接口
IFilterDataSourceAdapter
be吗
基于T约束其成员(字段和函数)
可以是IEnurable
或ICollectionView
或DataTable
或
DataView
或XDocument
如果“泛型”接口应根据其泛型参数T的类型指定不同的实现,那么该接口实际上不是泛型的,是吗
使用泛型,您应该抽象出不同类型的常见行为,而约束只允许您更精确地定义定义此常见行为的不同类型集。可能不是答案,但对于注释来说太长了。。。根据我对您问题的理解,我想说您现在拥有的(具有不同接口的公共基础接口,每个接口特定于一个数据源)很好 我具体指的是你问题的这一部分: 我们可以有一个单一的接口
IFilterDataSourceAdapter
be吗
基于T约束其成员(字段和函数)
可以是IEnurable
或ICollectionView
或DataTable
或
DataView
或XDocument
如果“泛型”接口应根据其泛型参数T的类型指定不同的实现,那么该接口实际上不是泛型的,是吗
使用泛型,您应该抽象出不同类型的常见行为,而约束只允许您更精确地定义定义此常见行为的不同类型集