erixx Geschrieben 12. November 2017 Melden Share Geschrieben 12. November 2017 Hi, ich würde gerne eine Klasse klonen, damit ich eine unabhängige Kopie erhalte. Im Moment schaut das so aus: public static Skill Clone(Skill original){ Skill clone=new Skill(); clone.skillTarget=original.skillTarget; clone.skillName=original.skillName; clone.skillTooltip=original.skillTooltip; clone.skillLevel=original.skillLevel; clone.skillMainType=original.skillMainType; clone.icon=original.icon; clone.bookIcon=original.bookIcon; clone.skillCostType=original.skillCostType; clone.skillCost=original.skillCost; clone.skillCostAdd=original.skillCostAdd; clone.skillCooldown=original.skillCooldown; clone.skillCurCooldown=original.skillCurCooldown; clone.skillCooldownAdd=original.skillCooldownAdd; clone.usingCooldown=original.usingCooldown; clone.skillRangeType=original.skillRangeType; clone.skillRange=original.skillRange; clone.skillType=original.skillType; clone.skillDamageMultiplier=original.skillDamageMultiplier; clone.levelTypeDamageMultiplier=original.levelTypeDamageMultiplier; clone.requiredWeapon=original.requiredWeapon; clone.gotRightWeapon=original.gotRightWeapon; clone.applyType=original.applyType; clone.applyAmount=original.applyAmount; clone.applyAmountAdd=original.applyAmountAdd; clone.skillCastParticle=original.skillCastParticle; clone.skillDuration=original.skillDuration; clone.skillDurationAdd=original.skillDurationAdd; clone.statusEffect=original.statusEffect; clone.statusEffectChance=original.statusEffectChance; clone.statusEffectChanceAdd=original.statusEffectChanceAdd; clone.statusEffectDuration=original.statusEffectDuration; clone.statusEffectDurationAdd=original.statusEffectDurationAdd; return clone; } Nun meine Frage dazu, geht das nicht auch einfacher? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 12. November 2017 Melden Share Geschrieben 12. November 2017 Hier ist eine Methode (gerade gefunden), funktioniert aber nur denke ich mit Klassen dessen Member serialisierbar sind: using System; using System.IO; using System.Runtime.Serialization.Formatters.Binary; public static class GenericCopyMaker<T> { public static T GetDeepCopy(object objectToCopy) { using (MemoryStream memoryStream = new MemoryStream()) { BinaryFormatter binaryFormatter = new BinaryFormatter(); binaryFormatter.Serialize(memoryStream, objectToCopy); memoryStream.Seek(0, SeekOrigin.Begin); return (T) binaryFormatter.Deserialize(memoryStream); } } } Also sowas hier: [System.Serializable] public class SaveGlob { public int level; public float health; public bool isHardMode; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.