状态实现 所有泛型一次的类型
本文关键字:一次 类型 实现 泛型 状态 | 更新日期: 2023-09-27 18:32:47
我有以下类签名:
public class CostZoneEffectivityViewModel : CustomerViewModel, IViewModel, ISQLFilter<CostZoneEffectivityView>, IRefresh<CostZoneEffectivityView>, ITotal<CostZoneEffectivityView>
请注意最后三个接口的 Type 参数是如何CostZoneEffectivityView
的,该参数在名称和类签名方面都相当长。
我想知道是否有办法告诉它一次,让它对眼睛更轻松一点(即缩短它)?
也许像这样:
ISQLFilter<T>, IRefresh<T>, ITotal<T> where T is CostZoneEffectivityView
有什么可以让我在不更改功能的情况下缩短类签名吗?
您可以使用
using
alias 指令为类型设置别名
using CZEV = CostZoneEffectivityView;
...
public class CostZoneEffectivityViewModel : CustomerViewModel,
IViewModel,
ISQLFilter<CZEV>,
IRefresh<CZEV>,
ITotal<CZEV>
这是个好主意吗?应该不会。
如果您通常将这 3 个接口一起使用,您也可以考虑将它们打包在一起:
public interface ICombinedFunctionality<T> // bad name, but you get the idea
: ISQLFilter<T>,
IRefresh<T>,
ITotal<T>
{}
然后,在类定义中只需要一次:
public class CostZoneEffectivityViewModel : CustomerViewModel,
IViewModel,
ICombinedFunctionality<CostZoneEffectivityView>
...