Я начинаю учиться на C# и сталкиваюсь с трудными временами событий в C#. В книге, которую я читал (Иллюстрированный C# 2008), приведен пример, и есть несколько вещей, которые мне нужно задать о, поэтому я пропущу код здесь и указать на вещи, которые я не понимаю.Нужна помощь в понимании События в C#
public class MyTimerClass
{
public event EventHandler Elapsed;
private void OnOneSecond(object source, EventArgs args)
{
if (Elapsed != null)
Elapsed(source, args);
}
}
class ClassA
{
public void TimerHandlerA(object obj, EventArgs e) // Event handler
{
Console.WriteLine("Class A handler called");
}
}
class ClassB
{
public static void TimerHandlerB(object obj, EventArgs e) // Static
{
Console.WriteLine("Class B handler called");
}
}
class Program
{
static void Main()
{
ClassA ca = new ClassA(); // Create the class object.
MyTimerClass mc = new MyTimerClass(); // Create the timer object.
mc.Elapsed += ca.TimerHandlerA; // Add handler A -- instance.
mc.Elapsed += ClassB.TimerHandlerB; // Add handler B -- static.
Thread.Sleep(2250);
}
}
Хорошо, теперь линия после объявления события здесь public event EventHandler Elapsed;
, который private void OnOneSecond(object source, EventArgs args)
я знаю, что две линии после того, как это проверить, если событие содержит методы или нет, но то, что это OnOneSecound
для? или когда он называется? или то, что он назвал .. это не обработчик событий, я думаю, правильно? и какова связь между Elapsed
и OnOneSecond
?
извините за новичка вопрос .. и спасибо заранее :)
Итак, что вы говорите, что OnOneSecond метод функционален просто «лишний» в этом примере? – StingyJack
Он просто не используется, поскольку MyTimerClass ничего не делает. – sunside