c# 接口相关的小总结

本文探讨了编程中的协变接口和逆变接口概念,解释了它们如何区分于普通接口,并举例说明了在类型安全的上下文中如何应用。通过实例化Pig类及其行为接口,展示了如何在实际场景中操作和理解这两种特殊接口的使用方式。
摘要由CSDN通过智能技术生成
Class Pig: Eat, DoSth
{
int Eat.No1(int x)
{
...
}

int Eat.No2()
{
...
}

int DoSth.No1()
{
...
}
int DoSth.No2()
{
...
}

}

首先创建一个能够容纳Pig的空间,并Pig实例。
Pig myPig = new Pig();
此时我想通过接口(Eat、DoSth)来做什么,所以要将这些做的事情也实例化
Eat toEat = myPig   (将myPig的活动Eat给实例了,并命名为toEat)
int toEatNo1 = toEat.No1(x);(将最后一层实例化,并输入参数x);


协变接口是什么呢?(属于一个例外)
假设已经了解泛型
要知道
Sth<A>不可以直接赋给Sth<B>
但是如果其中一个是只有返回值的,也就是说Sth<A>{    return <A>xxx     },
此时不存在外界会修改<A>类型,此时<A>在Sth里面很安全,则可以Sth<A>直接赋给Sth<B>

逆变接口是什么呢?
其特征为  <in A> 里面有个in
这就是告诉程序员,要么传递A作为参数,要么传递A的派生类作为参数。

协变接口与逆变接口看上去像一对特殊情况(一个是返回,一个是输入。。。好像没什么区别)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值