Projelerimin çoğunda olayları ve delegeleri kullandım, ancak hala bir projedeki olayları ve delegeleri kullanmanın ve bir delegenin ve bir etkinliğin arasındaki farkın nerede olduğu konusunda aklımda bazı şüphelerim var. Lütfen? Bir yöntem çağrısı kapsülleyebilen bir türdürEtkinlikler ve delegeler nerede kullanılır?
cevap
A Delegate. Yöntemi bir nesne olarak ele almak ve etrafından geçirmek istediğinizde bir temsilci kullanmalısınız.
Event yalnızca bir temsilci, sınıfınızın dışındaki herhangi bir kodun işleyicilerini ekleyebildiği ancak temsilci çağıramayacağı bir özellik olarak gösterme yöntemidir. Temsilcinizi bir ortak özellik olarak ifşa ederseniz, sınıfınızın dışındaki kodlar yalnızca işleyicilerini ekleyemez, aynı zamanda delege de çağırır.
Buna ek olarak, Olaylar ayrıca, işleyicileri eklendiğinde, çıkarma işlemini daha iyi denetlemenize izin veren bir kamu mülkünün düzenleyicisi ve ayarlayıcısı gibi, ekleme yöntemlerini de eklemenize izin verir.
Başka sınıfların sınıfınızdaki bir etkinliğe abone olmasını ve gerçekleştiğinde bildirim almasını istediğinizde olayı kullanmalısınız.
public delegate void MyMessageHandlerType(string message);
public class EventTest
{
public event MyMessageHandlerType MessageEvent
{
add { } // invoked when MessageEvent += SomeMethod
remove { } // invoked when MessageEvent -= SomeMethod
}
}
Her iki delege ve olay, bir geri arama mekanizması sağlar. Bir olay, bağlı işleyicileri herhangi bir sayıda olabilir bir delagate biraz daha az bağlı olan bir geri arama mekanizması sağlar ve bu kod genellikle işleyicileri numarası (eğer varsa) bağımsız olarak aynı şekilde çalışır. İyi bir örnek, bir pencerenin Resized
olayı olabilir; pencere yeniden boyutlandırma, herhangi bir olay işleyicisinin bağlı olup olmadığını çalışacaktır; olay bir bildirim mekanizmasıdır.
Delege, birçok duyuda daha fazla bağlıdır. Tipik olarak bir temsilci üyesi ile tam olarak bir yöntem ilişkilendirebilirsiniz ve genellikle beklenir; Örneğin LINQ uzantısı yöntemlerini (örneğin, Where
) alın: temsilci parametresi için tam olarak bir yöntem sağlamadığınız sürece çalışmazlar.
- 1. ipython nerede kullanılır ve ipthon kabuğu nerede?
- 2. prepareForSegue ve delegeler
- 3. Kullanıcı tanımlı delegeler C# içinde nasıl kullanılır ve oluşturulur?
- 4. Çıkarma delegeler
- 5. Sanal yapıcılar nerede kullanılır?
- 6. jQuery focusIn ve canlı etkinlikler
- 7. Delegeler ve ParamArray - Geçici Çözüm Önerileri?
- 8. Concatenate iki Func delegeler
- 9. Asenkron Noktaya Yayın delegeler
- 10. Swift protokolü devralma + delegeler
- 11. Delegeler hakkında soru
- 12. Özel etkinlikler nasıl yayılır ve işlenir?
- 13. Javascript yakalama ve kabarcıktaki tüm etkinlikler yapın?
- 14. MVP, Winforms - EventHandlers veya Delegeler
- 15. Değerlendirmeler, nerede ve nerede Haskell
- 16. Monotouch'ta çoklu delegeler nasıl uygulanır?
- 17. Farklı etkinlikler için Kaligrafi Kitaplığı'nı kullanan bazı etkinlikler
- 18. Magento'daki Özel Etkinlikler
- 19. ROWLOCK, CTE, Alt sorgu ve Güncelleme ile READPAST nerede kullanılır?
- 20. UITableView Düzenle/Bitti Etkinlikler
- 21. Ruby'de Etkinlikler nasıl yapılır?
- 22. Özel etkinlikler nasıl oluşturulur?
- 23. Python Turtle - Etkinlikler Tıklayın
- 24. İş modelini modele dönüştürmek için nerede kullanılır?
- 25. Zend Framework çeviri aracı nerede kullanılır?
- 26. Lacin in laravel ile Nerede kullanılır?
- 27. Koleksiyon nerede java web uygulama geliştirme kullanılır?
- 28. MySQL'de değişkenler nasıl kullanılır ve nasıl kullanılır?
- 29. FabricJS AngularJS Tuval Üzerine Etkinlikler
- 30. MobileTearSheet nedir ve nerede?
güzel açıklama burada: http://blog.monstuff.com/archives/000040.html – SubniC
Bir olay yalnızca bir temsilci özel biçimidir. arasında – VVS
olası yinelenen [olaylar ve katılımcılar ve ilgili uygulamalar arasındaki fark] (http://stackoverflow.com/questions/563549/difference-between-events-and-delegates-and-its-respective-applications) –