SORU
17 Mart 2011, PERŞEMBE


Ben&; Olası 'null'" ile değer türü karşılaştırmak quot; hakkında ne yapmalıyım?

Özel NUnit, emin olmak için bu yöntemi yazarken.

    private void AddMatchFailure<TExpected, TActual>(string failureName, TExpected expected, TActual actual)
    {
        _matchFailures.Add(
            String.Format(MatchFailureFormat, failureName,
            (expected == null) ? "null" : expected.ToString(),
            (actual == null) ? "null" : actual.ToString()));
    }

Resharper expected actual ValueType nesneler olabileceği konusunda uyarıyor.

e.g. TExpected is DateTime
   expected == null;//  but DateTime is a struct.

Boş bir ValueType karşılaştırırken kuralları nelerdir ve nasıl sınıf bir kısıtlama ekleyerek genel parametreleri sınırlama olmadan bu hesap yöntemi yazayım mı?

CEVAP
17 Mart 2011, PERŞEMBE


Kod değişiklik yok - sadece bir uyarı Yoksay. Eğer türü parametre null olmayan bir değer türü ise, karşılaştırma her zaman başarısız olur ve her zaman ToString() yerine arayın. Aslında JİTted kaldı mı bilmiyorum, ama hiç şaşırmam... ve bu performans-kritik kodu neyse bir şey var gibi:) yok

Şahsen uyarı bırakırdım "" ama bu özel durumda bu muhtemelen görmezden bir yorum.

Aynı uyarı Nesneleri bu SERİ reimplementing birkaç kez denk geldim sanırım.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Elly Awesome

    Elly Awesome

    15 ŞUBAT 2010
  • sk8ingis4me

    sk8ingis4me

    16 Mart 2006
  • TheDamnWreckless

    TheDamnWreck

    12 Temmuz 2010