呼び出しに使用できる C# の標準デリゲートはありますか。呼び出す必要がある新しい関数シグネチャごとに、新しいデリゲートを宣言する必要がありますか?
今、私はそれらの署名を持っています。しかし、リターンとパラメーターの複雑さに対してネイティブデリゲートを使用できれば、それは素晴らしいことです。
public bool isDone()
{...}
public void doStuff()
{...}
public void doMoreStuff(object o)
{...}
public void doEvenMoreStuff(string str)
{...}
// I'm declaring my "custom" delegates like this:
private delegate bool delegate_bool();
private delegate void delegate_void(string line);
// and calling via
if (InvokeRequired)
Invoke(new delegate_void(doStuff), new object[] { });
else
{...}
編集:答えはAction<>とFunc<>のようです。
if (InvokeRequired)
return Invoke(new Func<bool>(isDone), new object[] { });
else
{...}
if (InvokeRequired)
BeginInvoke(new Action(doStuff), new object[] { });
else
{...}
if (InvokeRequired)
BeginInvoke(new Action<string>(doEvenMoreStuff), new object[] { "hello world" });
else
{...}