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

  • Karan Thakur

    Karan Thakur

    23 HAZİRAN 2010
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • LevelUpTuts

    LevelUpTuts

    20 Ocak 2012