using System;
public class NameChangeEventArgs : EventArgs
{
public string Name { get; private set; }
public NameChangeEventArgs(string name)
{
this.Name = name;
}
}
public class Dispatcher
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
OnNameChange(_name);
_name = value;
}
}
public event EventHandler<NameChangeEventArgs> NameChange;
protected virtual void OnNameChange(string name)
{
NameChange?.Invoke(this, new NameChangeEventArgs(name));
}
}
public class Handler
{
public void OnDispatcherNameChange(object Source, NameChangeEventArgs args)
{
Console.WriteLine("Dispatcher's name changed to {0}", args.Name);
}
}
class Program
{
static void Main(string[] args)
{
var dispatcher = new Dispatcher();
var handler = new Handler();
dispatcher.NameChange += handler.OnDispatcherNameChange;
var name = "Sidd";
dispatcher.Name = name;
}
}
Цель моего кода - изменить имя Диспетчера на имя, переданное ему, но пока это делается, вызывается событие для запуска метода в классе Handler для отображения имени, к которому имеет Диспетчер.был изменен на.
«OnDispatcherNameChange (объект Source, NameChangeEventArgs args)» вызывается для отображения сообщения «имя диспетчера изменено на» в установщике моего диспетчера.
Однако вместо этого выводится это...
Dispatcher's name changed to
Press any key to continue...
Что я сделал не так?