const 名と execute という仮想メソッドを持つ親クラス Command があります。どちらも子によって上書きされます。コマンドのリストを受け取り、変更された可能性のあるコマンドのリストを返すメソッドがあります。
入力コマンド リストを変更する必要があるかどうかを判断するには、このリストを変更する前に、リスト内の各コマンドの種類を知る必要があります。ただし、問題は、親と同じ名前の派生クラスの静的メンバーを作成するために new キーワードを使用する必要があることですが、コマンドの名前を静的に参照できるようにしたいと考えています。
私がやろうとしていることの例:
public List<Command> ReplacementEffect(List<Command> exChain)
{
for(int index = 0; index < exChain.Count; index++)
{
if(exChain[index].Name == StaticReference.Name)
{
//Modify exChain here
}
}
return exChain;
}
exChain[index].GetType() を使用する際の問題は、そのタイプの別のオブジェクトをインスタンス化して、どれが無駄で、時間がかかり、直感的でないかを確認する必要があることです。また、Name から const 修飾子を削除する必要があります。
編集:
class Command
{
public const string Name = "Null";
public virtual void Execute()
{
//Basic implementation
}
}
class StaticReference : Command
{
public new const string Name = "StaticRef";
public override void Execute()
{
//New implementation
}
}