C#控制台基础 接口out协变小实例

来源:互联网 发布:mac里的照片怎么导出 编辑:程序博客网 时间:2024/05/16 18:07

镇场诗:慈心积善融学习,技术誓为大家学。善心速造多好事,前人栽树后乘凉。我今于此写经验,愿见文者得启发。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ConsoleApplication1{    public interface ID<out T>    {        void Hello();    }    class MyBase:ID<MyBase>    {        public void Hello()        {            Console.WriteLine("hello base");        }            }    class PaiSheng:MyBase,ID<PaiSheng>    {        public void Hello()        {            Console.WriteLine("hello paisheng");        }    }    class Program    {        static void Main(string[] args)        {                        ID<PaiSheng> a = new PaiSheng();            ID<MyBase> b = a;            Console.ReadKey();        }    }}   

如果接口代码是这样的,

    public interface ID<in T>    {        void Hello();    }
错误列表,


  


总结:

协变,out。

ID<派生> a = new 派生();

ID<基类> b=a;


可以的。





//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

感恩帮助过我的人。博客的精髓在技术部分,更在镇场一诗。
我是一个新手,代码还有许多不完善的地方,请您看代码的时候多多思考。
C#是一个优秀的语言,VS是一个优秀的编译软件,二者值得学习。如果您有一些不会的知识,咱们可以相互讨论。
如果您认为代码可以有改进的地方,有错误的地方,请留下评论,我会处理的。
注:如果我的博文无意中侵犯了您的权益,请告知。看到您的告知后,我将及时作出处理。
0 0
原创粉丝点击