SORU
13 HAZİRAN 2013, PERŞEMBE


'??&operatör#039; olamaz türündeki işlenenler için 'T' ve 'T' uygulanması;

Aşağıdaki genel yöntem var, ama VS bana bir derleme hatası verir. (?? ''Operatör olamaz türündeki işlenenler için uygulanan '' ve '') T . T

public static T Method<T>(T model) where T : new()
{
    var m = model ?? new T();
}

Bazı tek nedeni hakkında bir fikriniz var mı?

Edit: neden T benim durumumda bir yapı olabilir, bir yapı null olmayan bir türü olabilir mi?

CEVAP
13 HAZİRAN 2013, PERŞEMBE


class kısıtlama eklemek gerekir:

public static T Method<T>(T model) where T : class, new()
{
    var m = model ?? new T();

    return m;
}

Ve m da geri vermelisin!

Not: @KristofDegrave belirtilen zleri, nedeni var Ekle class sınırlamadır, çünkü T edilebilir bir değer yazın gibi int beri ?? operatör (boş birleşiyor) kontrol türleri olabilir null var Ekle class kısıtlama hariç değer türleri.

Edit: Alvin Wong cevabı aslında yapılar olan null türleri de; durum için kapalı ama işlenen olabilir ?? operatör. Method Alvin aşırı yüklü sürümü olmadan null döndürecektir unutmayın, null türleri için.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ama Jenna

    Ama Jenna

    29 NİSAN 2011
  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • nigahiga

    nigahiga

    21 Temmuz 2006