蜂蜜标签贴纸:派生类可以直接强转为类基类型

来源:百度文库 编辑:偶看新闻 时间:2024/05/09 04:35:17

派生类可以直接强转为类基类型,而反之则不可以,它们的集合也具有这种特性

以下实例是parent是基类,sub是它的派生类,如果有一个sub类型的集合希望转换为parent,那是可以的,它可以广泛的应用于面向接口和面向抽象的编程

环境中。

 

class parent
    {
        public string name { get; set; }
    }
    class sub : parent { }

             #region 由派生类集合强转成父类集合(正确)
            List sublist = new List { new sub { name = "zzl" }, new sub { name = "zhz" } };
            sublist.Cast().ToList().ForEach(i => Console.WriteLine(i.name));
            #endregion

            #region 由父类集合强转成派生类集合(出错)
            List parentlist = new List { new sub { name = "zzl" }, new parent { name = "zhz" } };
            parentlist.Cast().ToList().ForEach(i => Console.WriteLine(i.name));
            #endregion