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

  • 8lacKy

    8lacKy

    30 Mart 2009
  • michaeljacksonVEVO

    michaeljacks

    2 EYLÜL 2009
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010