3
- 我知道這是事件參數的「e」,但這裏的「s」是什麼意思,「+ =(,)=>」是什麼意思?
是否有其他替代實現?「x.OnSpeak + =(s,e)」是什麼意思?
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)); } } }
它不再是含糊不清,我就接受了幾分鐘後,回答 – Kinani 2014-12-27 14:10:16
這是一個['匿名Method'] (http://msdn.microsoft.com/en-us/library/0yw3tz5k.aspx)聲明。 – Avijit 2014-12-27 14:10:31
'(s,e)=> Console.WriteLine(「在說話!」)是一個lambda。您可能需要閱讀C#中的lambda表達式。 – 2014-12-27 14:10:43