SORU
20 Mart 2012, Salı


Null değerleri kontrol etmek için doğru yol nedir?

Kolay null türleri için varsayılan bir değer atamak için yapar çünkü boş birleşiyor operatörü seviyorum.

 int y = x ?? -1;

Eğer bir şey x ile basit yapmam gerekiyorsa dışında gayet güzel. Eğer Session, kontrol etmek istiyorsanız örneğin, o zaman bir şey daha ayrıntılı yazmak zorunda sonunda.

Bunu yapmak isterdim:

string y = Session["key"].ToString() ?? "none";

Ama eğer Session["key"] null .ToString() başarısız boş Çek önce çağrılır çünkü yapamazsın. Bu ben yapıyorum:

string y = Session["key"] == null ? "none" : Session["key"].ToString();

Çalışır ve üç satırı alternatif daha iyi, bence

string y = "none";
if (Session["key"] != null)
    y = Session["key"].ToString();

Bu çalışıyor olsa bile, eğer daha iyi bir yol varsa hala merak ediyorum. Ben her zaman ödev için kontrol edin ve yeniden Session["key"] iki kez; bir kez başvuru için önemli gibi görünüyor. Herhangi bir fikir?

CEVAP
20 Mart 2012, Salı


Sık yapıyorsanToString() ile özelliklesonra bir uzatma yöntemi yazabilirsiniz:

public static string NullPreservingToString(this object input)
{
    return input == null ? null : input.ToString();
}

...

string y = Session["key"].NullPreservingToString() ?? "none";

Ya da bir yöntem tabii: varsayılan alıyor

public static string ToStringOrDefault(this object input, string defaultValue)
{
    return input == null ? defaultValue : input.ToString();
}

...

string y = Session["key"].ToStringOrDefault("none");

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Autodesk 3ds Max Learning Channel

    Autodesk 3ds

    23 HAZİRAN 2010
  • Caroline Saquet

    Caroline Saq

    1 EKİM 2011
  • Alexey - servant of Christ

    Alexey - ser

    15 EYLÜL 2007