Boş oluşturmak C# olay işleyicileri otomatik olarak
Olası C bir olayı için değil# hiçbir işleyicileri eklenmiş. Her aramadan önce eğer olay boş olup olmadığını kontrol etmek için gereklidir.
if ( MyEvent != null ) {
MyEvent( param1, param2 );
}
Benim kod mümkün olduğunca temiz tutmak ve o boş çekler kurtulmak istiyorum. Performansı çok fazla, en azından benim durumumda değil etkileyeceğini sanmıyorum.
MyEvent( param1, param2 );
Şimdi ben manuel olarak her bir olay için boş bir satır içi işleyicisi ekleyerek bunu çözmek. Bu vb hatırlamak istiyorum beri hata eğilimli.
void Initialize() {
MyEvent = new MyEvent( (p1,p2) => { } );
}
Bir şekilde, belirli bir sınıf otomatik olarak yansıması ve bazı CLR büyü kullanarak tüm olaylar için boş işleyicileri oluşturmak için var mı?
CEVAP
Başka bir yazı üzerine bunu gördüm ve utanmadan çalmış ve benim kod o zamandan beri çok kullanmıştır:
public delegate void MyClickHandler(object sender, string myValue);
public event MyClickHandler Click = delegate {}; // add empty delegate!
//Let you do this:
public void DoSomething() {
Click(this, "foo");
}
//Instead of this:
public void DoSomething() {
if (Click != null) // Unnecessary!
Click(this, "foo");
}
(Düzenleme:Eğer bu yazıyı 8**) aldım
Neden eclipse yeni bir proje oluşturma...
Nasıl otomatik olarak SD kart üzerinde...
Bir şekilde otomatik olarak Eclipse al...
Nasıl otomatik olarak N "farklı&q...
Nasıl alt her kullanıcı için otomatik ...