デリゲートの関数シグネチャをコード内に既に置いているときは、関数シグネチャを2回宣言しないでください。私は明らかに何かを見逃しているように感じるが、私はグーグルでこれを行う方法を見つけることができないようだ。C#は既存の関数からデリゲートシグネチャを宣言します
public class SomeLibraryV1
{
public int DoSomething(int x, int y);
}
public class SomeLibraryV2
{
public int DoSomething(int x, int y);
}
public class SomeConsumer
{
// Create the delegate by manually declaring the signature again :-(
private delegate int DoSthDelegate(int x, int y);
public void Run(DoSthDelegate aDelegate)
{
aDelegate(1, 2);
}
}
だから私はちょうどint fn(int, int)
の2番目の宣言を避けているやってみたいものを。
public class SomeConsumer
{
// Create the delegate from the function signature we already know :-)
public delegate DoSthDelegate(SomeLibrary.DoSomething);
public void Run(DoSthDelegate aDelegate)
{
aDelegate(1, 2);
}
}
このようなものは、二回ごとに1つの宣言を入力して、私を救うだけでなくDoSomething
変更の署名すべき2つの場所で物事を維持する必要が私を救うでしょう。
Funcを取る? –
OK、SomeLibrary.DoSomethingの宣言からどうやって取得できますか? –
私はあなたが何を意味しているのか理解していますが、実行する前にこれを行う方法がわかりません。私はあなたがここで明白でなければならないと思う。しかし、 '' 'Func <>' ''はあなたにいくつかの入力を省くかもしれません。 –