/// <summary> /// Clone data from an object into a new version of it /// </summary> /// <param name="obj"></param> /// <typeparam name="T"></typeparam> /// <returns></returns> public static T Clone <T>(T obj) { DataContractSerializer dcSer = new DataContractSerializer(obj.GetType()); MemoryStream memoryStream = new MemoryStream(); dcSer.WriteObject(memoryStream, obj); memoryStream.Position = 0; T newObject = (T)dcSer.ReadObject(memoryStream); Color32 c = new Color32(); c.ColorToHex(); return(newObject); }