StringEnum ?
От: Аноним  
Дата: 29.06.09 09:17
Оценка:
Добрый день!
Как реализовать нечто подобное на C#

enum myStringEnum {
enumItem1 = "value 1",
enumItem2 = "value 2",
etc
}


Thanks!
Re: StringEnum ?
От: Аноним  
Дата: 29.06.09 09:18
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Как реализовать нечто подобное на C#

А>
А>enum myStringEnum {
А>enumItem1 = "value 1",
А>enumItem2 = "value 2",
А>etc
А>}
А>


А>Thanks!


string[] strEnum = new string[] {"value 1", "value2", etc };
Re: StringEnum ?
От: _FRED_ Черногория
Дата: 29.06.09 09:38
Оценка: 1 (1) +1
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Как реализовать нечто подобное на C#
А>
А>enum myStringEnum {
А>enumItem1 = "value 1",
А>enumItem2 = "value 2",
А>etc
А>}
А>


static class myStringEnum
{
  public const string enumItem1 = "value 1",
  public const string enumItem2 = "value 2",

  // …etc
}
Help will always be given at Hogwarts to those who ask for it.
Re: StringEnum ?
От: 18сс Россия  
Дата: 29.06.09 10:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Как реализовать нечто подобное на C#

А>
А>enum myStringEnum {
А>enumItem1 = "value 1",
А>enumItem2 = "value 2",
А>etc
А>}
А>


А>Thanks!

Боюсь, что никак...
An enumeration is a named constant whose underlying type is any integral type except Char. If no underlying type is explicitly declared, Int32 is used. Programming languages typically provide syntax to declare an enumeration that consists of a set of named constants and their values.
Кодом людям нужно помогать!
Re: StringEnum ?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 29.06.09 10:53
Оценка: 2 (2) +1 :)
Здравствуйте, <Аноним>, Вы писали:

class MyEnum
{
  public static readonly MyEnum Item1 = new MyEnum("Item1"); 
  public static readonly MyEnum Item2 = new MyEnum("Item2");
  public static readonly MyEnum Item3 = new MyEnum("Item3");

  private MyEnum(string value) {...}
  
  public string Value {get; set;}
  
  public static string implicit operator(MyEnum enum) {...}
}
... << RSDN@Home 1.2.0 alpha 4 rev. 1227 on Windows Vista 6.1.7100.0>>
AVK Blog
Re: StringEnum ?
От: Воронков Василий Россия  
Дата: 29.06.09 14:41
Оценка: 1 (1)
Здравствуйте, Аноним, Вы писали:

А>Добрый день!

А>Как реализовать нечто подобное на C#

А>
А>enum myStringEnum {
А>enumItem1 = "value 1",
А>enumItem2 = "value 2",
А>etc
А>}
А>


А>Thanks!


Ну и еще один вариант до кучи


using System;
using System.Reflection;

enum MyEnum
{
    [EnumText("value 1")]
    item1,

    [EnumText("value 2")]
    item2
}

[AttributeUsage(AttributeTargets.Field)]
sealed class EnumTextAttribute : Attribute
{
    public EnumTextAttribute(string text)
    {
        Text= text;
    }

    public override string ToString()
    {
        return Text;
    }

    public static string GetText<T>(T enumer) where T : struct
    {
        var strVal = enumer.ToString();
        var fi = typeof(T).GetField(strVal, BindingFlags.Static|BindingFlags.Public);
        var attr = Attribute.GetCustomAttribute(fi, typeof(EnumTextAttribute));
        return attr != null ? attr.ToString() : strVal;
    }

    public string Text{ get; private set; }
}

class Program
{
    static void Main()
    {
        var val = MyEnum.item2;
        var stringValue = EnumTextAttribute.GetText(val);
        Console.WriteLine(stringValue);
    }
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.