状态实现 所有泛型一次的类型

本文关键字:一次 类型 实现 泛型 状态 | 更新日期: 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>
...