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

  • Mega64

    Mega64

    24 ŞUBAT 2006
  • Rayone GB

    Rayone GB

    14 Temmuz 2007
  • theatre2film

    theatre2film

    12 NİSAN 2006