1

関数への参照をパラメータとして渡そうとしています

説明するのは難しい

擬似コードの例をいくつか書きます

(calling function)

function(hello());

function(pass)
{
   if this = 0 then pass
   else
}

hello()
{
   do something here
}

あまり意味がなかったらごめんなさい

しかし、使用するコードを減らそうとしているので、これは良い考えだと思いました。

C#でこれを行うにはどうすればよいですか?

4

3 に答える 3

7

Action デリゲートなどのデリゲートを使用して、コードをメソッドに渡すことができます。

void MyFunction(Action action)
{
    if (something == 0)
    {
        action();
    }
}

void Hello()
{
    // do something here
}

使用法:

MyFunction(Hello);
于 2012-04-30T10:46:50.007 に答える
6

関数への参照をパラメータとして渡そうとしています

説明するのは難しい

説明するのは難しいかもしれませんが、実装は非常に簡単です。以下MyFunctionのコードは、パラメーター化されたコードをパラメーターとして渡すことを呼び出します。

static void MyFunction(Action<string> doSomething) {
    doSomething("world");
}

static void Main(string[] args) {
    MyFunction((name) => {
        Console.WriteLine("Hello, {0}!", name);
    });
}

システムによって提供されるデリゲート型 (ActionおよびFunc) を使用するか、独自の を作成できます

于 2012-04-30T10:47:25.530 に答える
0

次に例を示します。

using System;

public class Example
{

    public void Method1(Action hello)
    {
        // Call passed action.
        hello();
    }

    public void Method2()
    {
        // Do something here
    }

    public void Method3()
    {
        Method1(Method2);
    }
}
于 2012-04-30T10:50:09.467 に答える