オブジェクトをコピーしようとしていますが、元のオブジェクトを変更せずに変更されます。関連するクラスは次のとおりです。
abstract class Upgrade {}
class Shield: Upgrade
{
public Shield(Shield a) {}
}
問題は、別のクラスが「アップグレード」オブジェクトを取得したいが、そのクラスが取得するオブジェクトを認識していない場合です。例えば:
public void AddUpgrade(Upgrade upgrade)
{
for (int i = 0;i<Aliens.Count; i++)
{
Aliens[i].AddUpgrade(What should i put here?);
}
}
すべてのエイリアンに同じアップグレード参照を共有させたくないため、コピーコンストラクターを使用する必要がありますが、アップグレードは抽象クラスです。どうすればよいですか?