SORU
4 Temmuz 2009, CUMARTESİ


Nasıl bir Numaralandırma değeri için TryParse?

Belirli bir değeri (bir dize olarak geçirilen) enum Olası değerlere karşı doğrulamak için bir fonksiyon yazmak istiyorum. Maçın durumda, numaralama örneğini döndürmesi gerekir; aksi halde, varsayılan değer döndürmesi gerekir.

Bu işlev, DAHİLİ olarak geçersiz bir argüman verildiğinde, bir istisna atar Enum.Parsekullanarak dışlartry/catch, kullanamazlar.

TryParse bunu uygulamak için bir işlev hat boyunca bir şey kullanmak istiyorum:

public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
   object enumValue;
   if (!TryParse (typeof (TEnum), strEnumValue, out enumValue))
   {
       return defaultValue;
   }
   return (TEnum) enumValue;
}

CEVAP
4 Temmuz 2009, CUMARTESİ


Numaralama.İsDefined halletmek olacaktır. Bir TryParse muhtemelen ne kadar etkili olmayabilir, ama özel durum işleme olmadan çalışmaz.

public static TEnum ToEnum<TEnum>(this string strEnumValue, TEnum defaultValue)
{
    if (!Enum.IsDefined(typeof(TEnum), strEnumValue))
        return defaultValue;

    return (TEnum)Enum.Parse(typeof(TEnum), strEnumValue);
}

Belirtmekte fayda:* *10 bir yöntem eklendi .NET 4.0.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Eric Magidson

    Eric Magidso

    4 Ocak 2009
  • Soulkiller13 ツ

    Soulkiller13

    30 Mayıs 2013