C# Event Kullanımı II - Generic Events
C# Event Kullanımı yazımızda event kavramına giriş yapmıştık. Bu yazımızda generic event kavramını incelemeye çalışacağız.
EventArgs sınıfından türeyen kendi custon EventArgs sınıfımızı yazabiliriz:
CustomEventArgs sınıfımızı yazdıktan sonra artık delege tanımı yapmadan freamwork içerisinde event handle etmek için kullanılan EventHandle<> generic sınıfını kullanarak programımızı yazabiliriz.
Çıktı:
EventArgs sınıfından türeyen kendi custon EventArgs sınıfımızı yazabiliriz:
public class CustomEventArgs : EventArgs
{
public int PersonId { get; set; }
public string FieldName { get; set; }
public string NewValue { get; set; }
}
CustomEventArgs sınıfımızı yazdıktan sonra artık delege tanımı yapmadan freamwork içerisinde event handle etmek için kullanılan EventHandle<> generic sınıfını kullanarak programımızı yazabiliriz.
class Person
{
public event EventHandler<CustomEventArgs> PersonHasChanged;
public int PersonId { get; set; }
private string _name;
public string Name
{
get { return _name; }
set
{
_name = value;
//eger method set edildi ise
if (PersonHasChanged != null)
{
CustomEventArgs c = new CustomEventArgs();
c.PersonId = this.PersonId;
c.FieldName = "Name";
c.NewValue = value;
PersonHasChanged(this, c);
}
}
}
}
public class CustomEventArgs : EventArgs
{
public int PersonId { get; set; }
public string FieldName { get; set; }
public string NewValue { get; set; }
}
class Program
{
static void Main(string[] args)
{
Person p1 = new Person() { PersonId = 1, Name = "Safak" };
p1.PersonHasChanged += ShowChangedUser;
p1.PersonHasChanged += SendChangedUserInformation;
p1.Name = "Test";
Console.ReadLine();
}
static void ShowChangedUser(object sender, CustomEventArgs e)
{
Console.WriteLine(@"Person ID: {0} Field: {1}
New Value: {2}", e.PersonId, e.FieldName, e.NewValue);
}
static void SendChangedUserInformation(object sender
, CustomEventArgs e)
{
Console.WriteLine(@"Person ID: {0} Bilgilendirme maili
gonderiliyor", e.PersonId, e.FieldName, e.NewValue);
}
}
Çıktı:

0 yorum :
Yorum Gönder