首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于所有泛型,状态实现类型一次吗?

对于所有泛型,状态实现类型一次吗?
EN

Stack Overflow用户
提问于 2014-12-02 17:34:57
回答 1查看 43关注 0票数 1

我有以下的课堂签名:

代码语言:javascript
复制
public class CostZoneEffectivityViewModel : CustomerViewModel, IViewModel, ISQLFilter<CostZoneEffectivityView>, IRefresh<CostZoneEffectivityView>, ITotal<CostZoneEffectivityView>

注意,最后三个接口的Type参数是CostZoneEffectivityView,它的名称和类签名都很长。

我想知道是否有办法告诉它一次,使它的眼睛更容易一点(即缩短它)?

也许是这样的:

代码语言:javascript
复制
ISQLFilter<T>, IRefresh<T>, ITotal<T> where T is CostZoneEffectivityView

有什么东西可以让我在不改变功能的情况下缩短类签名?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-02 17:38:24

可以使用 alias directive对类型进行别名。

代码语言:javascript
复制
using CZEV = CostZoneEffectivityView;    
...    
public class CostZoneEffectivityViewModel : CustomerViewModel, 
         IViewModel, 
         ISQLFilter<CZEV>, 
         IRefresh<CZEV>, 
         ITotal<CZEV>

这是个好主意吗可能不是。

如果您通常将这3个接口放在一起使用,则还可以考虑将它们封装在一起:

代码语言:javascript
复制
public interface ICombinedFunctionality<T> // bad name, but you get the idea
            : ISQLFilter<T>, 
             IRefresh<T>, 
             ITotal<T>
{}

然后,您只需要在类定义中使用它一次:

代码语言:javascript
复制
public class CostZoneEffectivityViewModel : CustomerViewModel, 
         IViewModel, 
         ICombinedFunctionality<CostZoneEffectivityView>
...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27255531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档