私は次のことをしたい:
private static Dictionary<string, Delegate> handlers = new Dictionary<string, Delegate>();
private static void RecievedMessage(object sender, RecievedMessageEventArgs e) {
if(e == null || e.Message == null) return;
if(e.Message is RegisterMethodMessage) {
var registerMethodMsg = (RegisterMethodMessage)e.Message;
if(handlers.ContainsKey(registerMethodMsg.MethodName)) {
handlers[registerMethodMsg.MethodName] += registerMethodMsg.Handler; //Error
} else {
handlers.Add(registerMethodMsg.MethodName, registerMethodMsg.Handler);
}
}
}
ディクショナリ内の同じキーでチェーンに追加されたデリゲートは、同じメソッドシグネチャを持ちます。
「Delegate」をActionのような特定のコードに置き換えると、上記のコードは機能します。
だから私の質問は:
置換なしで、そして多くの「ハッキング」なしで同じことをすることは可能ですか?