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

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • Michael Neal

    Michael Neal

    2 Mayıs 2009
  • Top Gear

    Top Gear

    27 Mart 2006