2009-01-31 21 views
13

benim sınıfta bir etkinliğe kayıt edildi ve her zamanki gibi tembel ve sadece otomatik tamamlama özelliği 2008 Pro hangi oto temsilci oluşturma oluşturur ve bu yöntem ilişkili Visual Studio yerleşik kullanın.'Yedek delege oluşturma' neyi oluşturur?

public abstract class FooBase 
{ 
    protected event EventHandler<MyValueChangedArgs> MyValueChanged; 

    protected FooBase() 
    { 
     MyValueChanged += 
      new EventHandler<MyValueChangedArgs>(HandleMyValueChanged); 
    } 

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e) 
    { 
     // Some handling logic 
    } 
} 

Genellikle Visual Studio benim için olay işleyicisi gens zaman iki kere sanmıyorum, ama sonra Refactor bir öneri aldı! Pro "Yedek Delege Yaratılışını Kaldır". içinde öneri sonuçları: hangi koşullar temsilci oluşturma gereksiz ve zaman yaratma uygun temsilci olduğunu Altında

public abstract class FooBase 
{ 
    protected event EventHandler<MyValueChangedArgs> MyValueChanged; 

    protected FooBase() 
    { 
     MyValueChanged += HandleMyValueChanged; 
    } 

    private void HandleMyValueChanged(object sender, MyValueChangedArgs e) 
    { 
     // Some handling logic 
    } 
} 

?

Teşekkürler.

cevap

4

Bu Refactor'u düşünüyorum! Satır

MyValueChanged += new EventHandler<MyValueChangedArgs>(HandleMyValueChanged); 

kısaltılabilir Can ve derleyici bir olay işleyicisi oluşturma ve TEventArgs tip argüman anlaması olmasıdır hangi şartlar altında

oluşturma gereksiz temsilci ... anlatır ve ne zaman olduğunu delege oluşturma uygun mu?

tasarımcı tarafından oluşturulan Kodu

... bu konuda

5

üzgünüm. İsimsiz yöntemler C# 'ye eklendiğinde kısa kod üretmek için ürün programında zamanımız olmadı.

Hep ekstra sözdizimi kaldırmak için oluşturulan kodu düzenleyin.