私はこのコードを手に入れました(まあ、似たようなものです)。
private delegate void GenericCallback<T>(T Info);
private void DoWork()
{
System.Threading.Thread Worker = new System.Threading.Thread(
delegate()
{
TestMethod(TestMethodCallback<string>);
}
);
Worker.Start();
}
private void TestMethod(GenericCallback<string> Callback)
{
System.Threading.Thread.Sleep(1000);
if(Callback != null)
{
Callback("Complete");
}
}
private void TestMethod(GenericCallback<int> Callback)
{
System.Threading.Thread.Sleep(1000);
if(Callback != null)
{
Callback(25);
}
}
private void TestMethodCallback<T>(T Info)
{
MessageBox.Show(Info.ToString());
}
TestMethod
これにより、パラメーターの型に基づいてさまざまなバージョンの を呼び出すことができると同時に、単一のコールバック メソッドを持つこともできます。
これは悪い形ですか、それとも受け入れられている慣行ですか?