我有以下课程签名:
public class CostZoneEffectivityViewModel : CustomerViewModel, IViewModel, ISQLFilter<CostZoneEffectivityView>, IRefresh<CostZoneEffectivityView>, ITotal<CostZoneEffectivityView>
注意最后三个接口的Type参数是如何CostZoneEffectivityView
,它在名称和类签名中都相当长。
我想知道是否有办法告诉它一次让眼睛更容易(即缩短它)?
也许是这样的:
ISQLFilter<T>, IRefresh<T>, ITotal<T> where T is CostZoneEffectivityView
有什么能让我在不改变功能的情况下缩短班级签名吗?
答案 0 :(得分:3)
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>
...