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>())); }
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>())); }