Классы

using System;

var square = new Shape {
    Name = "Square"
};

//not deep copy
var squareCopy = (Shape) square.Clone();

Console.WriteLine(squareCopy.Name);


class Shape : ICloneable {
    public string Name { getinit; }

    public object Clone() {
        return MemberwiseClone();
    }
}