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

  • AmazonWireless

    AmazonWirele

    8 EYLÜL 2010
  • HowToBasic

    HowToBasic

    8 Aralık 2011
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013