CollectionBase子类调用MemberwiseClone()进行复制的问题


class Program
    {
        static void Main(string[] args)
        {
            Cows cow1 = new Cows();
            Cows cow2 = (Cows)cow1.Clone();
            Console.WriteLine(cow1==cow2); //FALSE 理解
            Console.WriteLine(cow1.MyClass==cow2.MyClass); // TRUE 理解
            Console.WriteLine(cow1.MyList == cow2.MyList); // FALSE 不理解,不是应该和上一条语句一样是TRUE么
            Console.ReadKey();
        }
    }

    class Cows : CollectionBase, ICloneable
    {
        public MyClass MyClass { get; }
        public object Clone()
        {
            return MemberwiseClone();
        }
        public IList MyList { get { return List; } }
    }

    class MyClass
    {
        
    }
 

按照浅复制的规则,cows2中的引用属性MyClass和MyList和cows1中相应属性应该引用同一个对象,为何我跑出来的结果是如上代码注释中的结果
也就是说,MyClass复制后是引用同一个对象,而MyList是复制后是引用了另外一个对象。这是什么原因?