2015-07-22 3 views
-5

У меня есть перечисление ниже:Использовать значения перечислений как свойства в

private enum MovieData { Name, Type, Size, Description, ReleaseDate }; 

Теперь я хочу использовать значения перечисления в качестве имен свойств, как

public string MovieData.Name 
    { 
     get 
     { 
      return name; 
     } 
     set 
     { 
      name = value;         
     } 
    } 

То же самое для других и имя является атрибутом. Возвращаемый тип всех должен быть строкой, и я хочу получить доступ к свойству только с именем Name not MovieData.Name

Как это сделать?

+1

Вопрос в том, почему вы хотите это сделать? Не могли бы вы написать еще об этом. – Marcin

+1

Я не уверен, что я следую, 'public string MovieData.Name' недействителен C#. Не могли бы вы дать более обширный пример того, что вы подразумеваете под этим? Как вы его используете и т. Д. – Blindy

+1

Похоже, что вы не хотите перечислять вообще, но что 'MovieData' должен быть« классом »с такими свойствами, как' public string Name {get; установить;} '. – crashmstr

ответ

2

Я не уверен, что ваш вопрос, но, как @crashmstr прокомментировал .. это кажется вам не нужен Enum, но вам просто нужен класс, чтобы держать эти свойства

В любом случае вы можете использовать этот НО эТО нЕ ХОРОШАЯ ПРАКТИКА , и я не знаю, что вы хотите сделать setter

public string Name 
     { 
      get 
      { 
       return MovieData.Name.ToString(); 
      } 
     } 

     public string Type 
     { 
      get 
      { 
       return MovieData.Type.ToString(); 
      } 
     } 

     public string Size 
     { 
      get 
      { 
       return MovieData.Size.ToString(); 
      } 
     } 

     public string Description 
     { 
      get 
      { 
       return MovieData.Description.ToString(); 
      } 
     } 

     public string ReleaseDate 
     { 
      get 
      { 
       return MovieData.ReleaseDate.ToString(); 
      } 
     } 
0

хотите в string или enum обратно?

private class SomeClass 
{ 
    private MovieData _data; 

    public MovieData Data { get { return _data; } set { _data = value; } } 
    public string DataString 
    { 
     get { return _data.ToString(); } 
     set { 
      switch (value){ 
       case "Name": 
        _data = MovieData.Name; 
        break; 
       case "Type": 
        _data = MovieData.Type; 
        break; 
       // etc. 
      } 
     } 
    } 
} 

Но я все еще не совсем понимаю, о чем вы спрашиваете.