0

現在、(おそらく) C# の Func または Action 型を使用してラムダを操作しようとしています。

CreateCRUD というメソッドを定義する IMyInterface というインターフェイスを作成したいと考えています。これには 5 つのパラメーターが必要です。最初は文字列です。次の 4 つは、create、read、update、および delete メソッドを呼び出す関数です。

interface IMyInterface
{
    void CreateCRUD(string name, Action<void> createFunc, Action<void> readFunc, Action<void> updateFunc, Action<void> deleteFunc);
}

4 つの関数定義は、パラメーターを取らず、何も返さないようにする必要があります。上記のコードはコンパイルされません。私を正しい方向に向けてください。

4

3 に答える 3

5

Action代わりに非ジェネリックを使用してください。

interface IMyInterface
{
    void CreateCRUD(string name, Action createFunc, Action readFunc, Action updateFunc, Action deleteFunc);
}
于 2012-09-26T15:19:44.620 に答える
1

Action<T>:

単一のパラメーターを持ち、値を返さないメソッドをカプセル化します。

したがって、 type の 1 つのパラメーターでデリゲートを強制しようとしていますvoid

あなたがする必要があるのは、Actionタイプなしで使用することだけです:

interface IMyInterface
{
    void CreateCRUD(string name, Action createFunc, Action readFunc, Action updateFunc, Action deleteFunc);
}

デリゲートにパラメーターの型を強制したい場合は、Action<T>egを使用する必要があります。Action<int>これは、パラメーターを持つメソッドを意味intします。

于 2012-09-26T15:20:52.700 に答える
0

何かのようなもの

Public delegate Action<T> MyActionDelegate;

interface IMyInterface 
{     
void CreateCRUD(string name, MyActionDelegate createFunc, MyActionDelegate readFunc, MyActionDelegate updateFunc, MyActionDelegate deleteFunc); 
} 
于 2012-09-26T15:24:34.057 に答える