SORU
26 Mayıs 2009, Salı


Nasıl Sistemi dönüştürmek.Temel tamsayı numaralandırma?

Herhangi bir sisteme dönüştürmek için genel bir yöntem oluşturmak istiyorum.Numaralandırma karşılık gelen tamsayı değeri yazın, tercihen bir dize ayrıştırma olmadan döküm olmadan ve türetilmiş.

İstediğim şey, örneğin, bu gibi bir şey:

// Trivial example, not actually what I'm doing.
class Converter
{
    int ToInteger(System.Enum anEnum)
    {
        (int)anEnum;
    }
}

Ama bu işe görünmüyor. İfade çevirebilirsiniz olmayan Resharper rapor türü 'System.'Yazın'. int numaralama

Şimdi bu çözüm buldum ziyade, daha verimli olurdu.

class Converter
{
    int ToInteger(System.Enum anEnum)
    {
        return int.Parse(anEnum.ToString("d"));
    }
}

Herhangi bir öneriniz var mı?

CEVAP
26 Mayıs 2009, Salı


Eğer atmak istemiyorsan eğer

Convert.ToInt32()

hile yapmak olabilir.

Doğrudan dökme ((int)enumValue) mümkün değildir. Bu da "" temelde farklı türleri olabilir bir numaralama(, *, byte*8 7*...*)beri. tehlikeli olacağını unutmayın

Özetle: System.Enum Int32 ile doğrudan devralma ilişkisi yoktur ve her ikisi de ValueTypes olsa da), açık döküm yazamaz sistemi içinde doğru olabilir

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • 趣味そうこ♪

    趣味そう

    3 Mart 2010
  • Malwarebytes

    Malwarebytes

    22 Temmuz 2007