class MyClass
    {
        public int A { get; set; }

        public string B { get; set; }

        public object C { get; set; }

        public MyClass() { }
        
        public MyClass(MyClass instance)
        {
            A = instance.A;
            B = instance.B;
            C = instance.C;
        }
    }

ごく単純にこういう話だろ

この方法は子供以下の参照型フィールドをCloneする方法がないけど
Cloneはデリケートだから許可されてるオブジェクト以外ではしてはいけないと考えるべきか