SORU
19 Kasım 2008, ÇARŞAMBA


Nasıl C genel bir yöntem BOŞ dönebilirim#?

Ben genel bir yöntemle bu (kukla) kod (Evet farkındayım IList var doğrulamaları, ama benim kod kullanarak IList ama başka bir koleksiyon, her neyse bu alakasız soru...)

static T FindThing<T>(IList collection, int id) where T : IThing, new()
{
    foreach T thing in collecion
    {
        if (thing.Id == id)
            return thing;
    }
    return null;  // ERROR: Cannot convert null to type parameter 'T' because it could be a value type. Consider using 'default(T)' instead.
}

Bu bana bir sürüm hatası veriyor

"Yazamaz parametre için null dönüştürmek 'T değer bir türü olabilir çünkü. Kullanarak 'default(T)' yerine." düşünün

Bu hatayı önlemek miyim?

CEVAP
19 Kasım 2008, ÇARŞAMBA


İki seçenek var:

  • Dönerseniz T başvuru türü (veya NULL değer türü), 0 tamsayı için null döneceksiniz demektir, '\0' char vb. default(T)
  • T where T : class kısıtlama ile referans türü olması ve normal olarak null döndürür kısıtlamak

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AginoEvolutionHD

    AginoEvoluti

    27 AĞUSTOS 2011
  • Julian Smith

    Julian Smith

    31 EKİM 2006
  • JeezyVEVO

    JeezyVEVO

    12 Mayıs 2009