時々私は最も単純なことを理解することができません、私はそれが私の顔にあると確信しています、私はそれを見ることができないだけです。この単純なクラスのメソッドのデリゲートを作成しようとしています:
public static class BalloonTip
{
public static BalloonType BalType
{
get;
set;
}
public static void ShowBalloon(string message, BalloonType bType)
{
// notify user
}
}
さて、このAction <>は、キーワード「delegate」で実際にデリゲートを宣言せずにデリゲートを作成することになっていますが、正しく理解できましたか?それで:
private void NotifyUser(string message, BalloonTip.BalloonType ballType)
{
Action<string, BalloonTip.BalloonType> act;
act((message, ballType) => BalloonTip.ShowBalloon(message, ballType));
}
これはコンパイルに失敗します。なんで?
(ちなみに、ShowBalloon()を直接呼び出すのではなく、このデリゲートが必要な理由は、UI以外のスレッドから呼び出す必要があるため、Action <>が必要だと考えました)
ありがとう、