接口作为返回类型

返回类型是接口的讨论

http://bbs.csdn.net/topics/380209722

public static IList<int> a()
{
   b=new List<int>();
   return b;
}

这里不是返回一个List, 而是IList接口是什么意思呢?

=========================================================================

 如果你编写一个函数,确定只返回某个类型。那么在选择 返回值 类型的时候,越精确越好。
比如 string string.Replace(string, string),就比object string.Replace(string, string)好。

如果明知你返回的是一个类型,那调用时还要用接口来声明变量,没有意义。但是在这样一种情况下例外(我不想说的不严谨被有些人说,但是的确这种例外的情况你很难遇到):就是这个类显式实现了某个接口,同时你又要使用这个接口的方法,某个场景是,这个类实现了两个不同的接口,这两个接口有方法签名相同但是含义不同的两个方法,因此类显式实现接口。这时候你得指定所用的接口类型而不是返回值类型。

 =================================================================================

返回接口一般运用于抽象层。

IList<T>可以理解为女人。
List<T>可以理解你女朋友。
你女朋友可以具有女人这个属性,但是并不是每个具有女人属性的人都是你女朋友。
而厕所就有个明确的定义 符合女人这个定义就可以进女厕所。不符合的就不能进。(当然存在BUG,比如清洁工可能是男的。)
你觉得精确到每一个具体的女人有意义么?

=========================================================================

public static IList<int> a()
{
   b=new List<int>();
   return b;
}

这里返回值类型为:一个IList<T>的泛型接口,这样的目的是让返回的b使用得更广泛,凡是继承了IList<T>接口的类都可以使用b而不会有类型冲突

=================================================================

 

 

 

 

方法该返回接口还是具体类,以及面向接口编程

http://www.cnblogs.com/kirinboy/archive/2012/03/08/should-method-return-interface-or-concrete-class-and-programming-to-an-interface.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值