コード例 #1
0
        public override object DeepCopyFindOrCreate(IDeepCloneObjectGraph graph)
        {
            if (graph.TryGetClone(this, out object clone))
            {
                return(clone);
            }

            IdentitySymmetryBuilder builder = new IdentitySymmetryBuilder();

            graph.Add(this, builder);
            DeepCopyPopulateFields(graph, builder);
            return(builder);
        }
コード例 #2
0
        public override object DeepCopyFindOrCreate(IDeepCloneObjectGraph graph)
        {
            if (graph.TryGetClone(this, out object clone))
            {
                return(clone);
            }

            NodeArraySource <T> array = new NodeArraySource <T>();

            graph.Add(this, array);
            DeepCopyPopulateFields(graph, array);
            return(array);
        }
コード例 #3
0
        public override object DeepCopyFindOrCreate(IDeepCloneObjectGraph graph)
        {
            if (graph.TryGetClone(this, out object clone))
            {
                return(clone);
            }

            AxisPattern <T> pattern = new AxisPattern <T>();

            graph.Add(this, pattern);
            DeepCopyPopulateFields(graph, pattern);
            return(pattern);
        }
コード例 #4
0
        public override object DeepCopy(IDeepCloneObjectGraph graph)
        {
            if (graph.TryGetClone(this, out object clone))
            {
                return(clone);
            }

            SymdefPattern <T> pattern = new SymdefPattern <T>();

            graph.Add(this, pattern);
            DeepCopy(graph, pattern);
            return(pattern);
        }
コード例 #5
0
 public abstract object DeepCopyFindOrCreate(IDeepCloneObjectGraph graph);
コード例 #6
0
        public override object DeepCopyFindOrCreate(IDeepCloneObjectGraph graph)
        {
            IDeepCloneObjectGraph context = new DeepCopyObjectGraph();

            return(DeepCopyFindOrCreate(context));
        }