Nasıl parametreleri gibi anonim türleri geçmek için? | Netgez.com
SORU
8 Temmuz 2011, Cuma


Nasıl parametreleri gibi anonim türleri geçmek için?

Nasıl diğer fonksiyonlara parametre olarak anonim türleri geçebilir miyim? Örnek:

var query = from employee in employees select new { Name = employee.Name, Id = employee.Id };
LogEmployees(query);

query burada değişken güçlü bir tür yok. Nasıl benim LogEmployees fonksiyonu kabul etmek için tanımlamak gerekir?

public void LogEmployees (? list)
{
    foreach (? item in list)
    {

    }

}

Diğer bir deyişle, I ? işareti yerine kullanılır.

CEVAP
8 Temmuz 2011, Cuma


Bu anonim türü için bir sınıf yapmak gerektiğini düşünüyorum. Bu bence yapılacak en mantıklı şey olurdu. Ama eğer gerçekten istemiyorsanız, dinamikleri kullanabilirsiniz:

public void LogEmployees (IEnumerable<dynamic> list)
{
    foreach (dynamic item in list)
    {
        string name = item.Name;
        int id = item.Id;
    }
}

Bu olduğunu unutmayındeğilkesinlikle yazılmış, eğer öyleyse, örneğin, EmployeeName Adı değişiklikleri, çalışma zamanı kadar bir sorun olduğunu bilemezsin.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • 24 Канал

    24 КанаÐ

    5 ÅžUBAT 2006
  • AyfionGaming

    AyfionGaming

    20 ÅžUBAT 2013
  • ChasesAndCrashes

    ChasesAndCra

    31 Temmuz 2009