首页 > Windows开发 > 详细

c#协变 抗变

时间:2019-04-30 17:26:11      阅读:138      评论:0      收藏:0      [点我收藏+]
public class Fa : TranOut<Fa>, TranIn<Fa>
    {
    }
    public class son : Fa, TranOut<son>, TranIn<son>
    {

    }
    public interface TranOut<out t>
    {

    }
    public interface TranIn<in t>
    {

    }
    public class Test
    {
        public void test()
        {
            //c#4.0
            IEnumerable<Fa> sharps = new List<son>();
            Fa a = new son();
            TranOut<Fa> b = new son();
            TranIn<son> c = new Fa();

            IEnumerable<Fa> la = new List<son>();
            
        }
    }

用out作为协变关键字,in为抗变关键字

使用out可以将子类转成父类对象,in则反之


 

适合使用此功能实现automap
[Shìhé shǐyòng cǐ gōngnéng shíxiàn automap]
技术分享图片
Suitable for implementing automap with this function

c#协变 抗变

原文:https://www.cnblogs.com/ives/p/10796989.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!