私はかなり新しい.Netです。ここで間違ったことをしています。C#の抽象メソッドをオーバーライドするデリゲートを実装します。
public delegate bool DEnqueue(ref IPCPriorityMessage item, byte priority);
...と、次のメソッド宣言:私の基本抽象クラスでは、私は、次のデリゲート持っ
public override DEnqueue Enqueue;
:私のインスタンスクラスで
public abstract DEnqueue Enqueue();
を、私は以下の持っています
I point適用可能なローカルメソッドにエンキューします。継承を使用しない場合や代理人を使用しない場合にのみ、これを機能させることができます。
私の正確な目的は次の通りである。
- は、デザインパターンを強制的に基本抽象クラスを使用します。インスタンスには、Engueue()メソッドが含まれている必要があります。
- インスタンスクラスの代理人を使用して、公開Enqueue()メソッドが呼び出されたときに適用可能なprivate enqueue()メソッドが呼び出されるようにします。
どうすればよいですか?私はインターフェイスを使ってみましたが、基本的に同じ問題があります。
注:私は実行時にプライベートenqueue()を使用することしか知っていないので、代理人の私の使用。
他はすべてテンプレートです。しかし、デリゲートを使用せずに、私はダブルコール、すなわちパブリックインスタンスメソッド+ 1をデリゲート(またはif文)を介して内部メソッドに送る必要があります。 – IamIC
はい。それは悪いですか? 2番目の呼び出しは最初のメソッド内で発生するので、呼び出し元にはわかりません。 –
悪くないです...ちょっとしたオーバーヘッドではありません。私がしようとしていることはできないのですか? – IamIC