“x.OnSpeak += (s, e)”是什么意思

本文关键字:是什么 意思 OnSpeak | 更新日期: 2023-09-27 18:35:21

  • 我知道这是事件参数的"e",但是这里的"s"和"+= ( , ) =>"是什么意思?
  • 还有其他替代实现吗?

    class Program
    {
     static void Main(string[] args)
       {
         var x = new Animal();
         x.OnSpeak += (s, e) => Console.WriteLine("On Speak!");
         x.OnSpeak += (s, e) => Console.WriteLine(e.Cancel ? "Cancel" : "Do not cancel");
         Console.WriteLine("Before");
         Console.WriteLine(string.Empty);
         x.Speak(true);
         x.Speak(false);
        Console.WriteLine(string.Empty);
        Console.WriteLine("After");
        Console.Read();
       }
     public class Animal
     {
      public event CancelEventHandler OnSpeak;
      public void Speak(bool cancel)
       {
         OnSpeak(this, new CancelEventArgs(cancel));
       }
     }
    }
    

“x.OnSpeak += (s, e)”是什么意思

这通常称为"内联事件",只是在OnSpeak事件触发时运行特定代码的另一种方式。

x.OnSpeak += (s, e) => Console.WriteLine("On Speak!");

ssendere是事件参数。

你可以像这样重写你的代码,这可能看起来更熟悉:

x.OnSpeak += OnSpeakEvent;
private static void OnSpeakEvent(object s, CancelEventArgs e)
{
    Console.WriteLine("On Speak!");
}