SORU
2 EKİM 2008, PERŞEMBE


Typedef eşdeğer C#

C'de bir typedef eşdeğer# var ya da bir şekilde aynı davranışları bir tür elde etmek için? Bazı googling yaptım, ama her yerde olumsuz gibi görünüyorum. Şu anda bir durum aşağıdaki gibi:

class GenericClass<T> 
{
    public event EventHandler<EventData> MyEvent;
    public class EventData : EventArgs { /* snip */ }
    // ... snip
}

Şimdi, bu olay için bir işleyici çalışırken bir roket bilim adamı bu çok hızlı bir şekilde yazarak çok (korkunç cinas için özür dilerim) neden olabilir anlamaya gerek yok. Böyle bir şey olmuyor.

GenericClass<int> gcInt = new GenericClass<int>;
gcInt.MyEvent  = new EventHandler<GenericClass<int>.EventData>(gcInt_MyEvent);
// ...

private void gcInt_MyEvent(object sender, GenericClass<int>.EventData e)
{
    throw new NotImplementedException();
}

Dışında, benim durumumda, zaten karmaşık bir türü değil, sadece bir int kullanıyordum. Eğer bu biraz kolaylaştırmak için mümkün olsaydı iyi olurdu.

Edit: ıe. belki de EventHandler typedefing yerine benzer bir davranış elde etmek için yeniden tanımlamak gerek.

CEVAP
2 EKİM 2008, PERŞEMBE


Hayır, typedef eşdeğeri yok. Bir dosya içindeki yönergeleri kullanarak, örneğin kullanabilirsiniz

using CustomerList = System.Collections.Generic.List<Customer>;

ama bu sadece kaynak dosya etkileyecektir.

Neyse ki, örnek veryokbir düzeltme - örtülü yöntem grup dönüşüm var. Sadece olay aboneliği hattınızı değiştirebilirsiniz:

gcInt.MyEvent  = gcInt_MyEvent;

:)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Tedeyev

    David Tedeye

    20 AĞUSTOS 2011
  • JTechTalk

    JTechTalk

    11 Temmuz 2010
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005