public static T DeepClone <T>(T original)
        {
            object originalBoxed = original;

            if (originalBoxed == null)
            {
                return((T)(object)null);
            }
            return((T)DeepCloneInternal.GetDeepCloner(originalBoxed.GetType())(originalBoxed, new Dictionary <object, object>()));
        }
Exemple #2
0
        public static T DeepClone <T>(T original)
        {
#pragma warning disable CS8600
            object originalBoxed = original;
#pragma warning restore CS8600
#pragma warning disable CS8603,CS8653
            if (originalBoxed == null)
            {
                return(default(T)); // return (T)(object)null;
            }
#pragma warning restore CS8603,CS8653
            return((T)DeepCloneInternal.GetDeepCloner(originalBoxed.GetType())(originalBoxed,
                                                                               new Dictionary <object, object>()));
        }