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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • eurotuner

    eurotuner

    6 Mart 2006
  • Noam Erez

    Noam Erez

    3 NİSAN 2012