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

  • eyes4beautee

    eyes4beautee

    17 HAZİRAN 2011
  • ThePointblank

    ThePointblan

    18 Aralık 2006
  • TimMinchinLive

    TimMinchinLi

    23 ŞUBAT 2009