Bir çeviri sınıfı olarak düşündüğüm şeyi oluşturmaya çalışıyorum, böylece programım çeşitli hedef platformlarla konuşabilir. Her platform soyut bir sınıfın ayrı bir uygulamasıyla ele alınacaktır. Basitlik uğruna işleri hallettim. Türetilmiş soyut sınıflardaki olayların uygulanmasını zorlama
soyut yöntemlerle bir çift, soyut bir sınıf var: Daha sonraabstract class ControllerBase
{
public abstract bool EnableDTMFDetection(string CallID, Party Party);
public abstract bool DisableDTMFDetection(string CallID, Party Party);
}
bir sınıf ControllerBase türetilen (sınıflar) ve tamamen bu yöntemleri uygulamak: Şimdiye kadar
class PlatformOne : ControllerBase
{
public override bool EnableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
public override bool DisableDTMFDetection(string CallID, Party Party)
{
// Do Stuff
return true;
}
}
çok iyi. PlatformOne için, bu yöntemlerin her birini tanımlamak zorundayım, hedef platformuma giden bir mesajı nasıl göndereceğimi reçete ediyorum.
Beni ele geçiren gelen olaylar. Türetilmiş sınıflarımdan olayları geliştirmem gerekiyor. Ben eklediğinizde controllerbase için aşağıdaki:
public delegate void MyEventHandler(object sender, EventArgs e);
public event MyEventHandler MyEvent;
O iyi derler ama hatasız benim türetilmiş sınıf içinde gelen olayı büyütemem: "Olay 'ControllerBase.MyEvent' sadece sola görünebilir + = veya - = (('ControllerBase' türünde kullanıldığında hariç) el tarafı "
Yani, a) Etkinliğimi türetilmiş sınıfımdan nasıl geliştirebilirim? b) Herkes için bir mekanizma önerebilir türetilmiş sınıfımdaki belirli olayların kablolanmasını zorlaştırmak (bir soyut fonksiyon veya arayüz metodu). Aradığınızda ederiz :)
Olayların nasıl yükseltileceğini okumanız gerektiği gibi görünüyor. Ayrıca, "MyEvent" ile ilgili kodu eklerseniz, bu soruya cevap vermede yardımcı olabilir. – Nayan