それぞれがアクションに対応する値のコレクションを作成しようとしています。このようにして、コレクションで特定の値を検索し、関連するアクションを一般的な方法で呼び出すことができます。
だから、これが私の最初の刺し傷でした:
public class CommandInfo
{
public string Name { get; set; }
public Action<RunArgument> Action { get; set; }
}
public class MyClass
{
public List<CommandInfo> Commands = new List<CommandInfo>
{
new CommandInfo { Name = "abc", Action = AbcAction } // <== ERROR HERE
};
public void AbcAction(RunArgument arg)
{
; // Do something useful here
}
}
この場合、コレクションCommandInfo
内でnewを宣言すると、Commands
次のエラーが発生します。
フィールド初期化子は、非静的フィールド、メソッド、またはプロパティ'MyNameSpace.MyClass.AbcAction(MyNameSpace.RunArgument)'を参照できません。
確かに、このような非静的メソッドへの参照を格納する方法が必要です。誰かが私を助けることができますか?