2014-11-12 3 views
-4

그 질문에 대답하지 않는 내 질문에, toString을 호출해야 거기에 추가 할 수있는 확장 메서드가 무엇입니까?다른 문자열을 tostring 열거 형

내가 열거를해야

그때

TimetableState.errormessage.ToString(); 

를 호출하고, 을 속성 '오류 메시지'문자열을 표시하거나 할

public enum TimetableState 
{ 
    ["Error Message"] 
    errormessage = 0, 
    Great = 1 
} 

내가 Great.ToString를 호출하는 경우() 문자열 'Great'이 반환됩니다.

속성은 무엇이든 될 수 있으며, 설명 일 필요는 없습니다.

ToString()을 직접 사용하는 것이 가능하다는 것을 알고 있지만 어떻게해야합니까? 내가 그것을 사용하는 목록 정렬 및 디스플레이를 필요로하는 그 그러나 열거에 ToString()를 호출하여 동일한을 얻기 위해 원하는

+++++++ 이 중복되지 않습니다. 이 가능합니까? ++++++++

+0

문자열 설명은 'TimetableState.errormessage' 또는 0과 연결됩니다. 그것은 다른 값/멤버 ( – Plutonix

+0

)이기 때문에 결코 "Great"를 표시하지 않습니다. @TonyTheLion - 네, 꽤 많이 보았습니다. 내가 본 유일한 것은 getdescription (답변 1)이지만, 우리는 단지 toString 우리가 다른 사람들에게 dll처럼 쉽게 사용할 수 있기를 바랍니다. – f1wade

+0

@Plutonix - 본인 확인을 위해 원래 질문을 수정했습니다. – f1wade

답변

1

업데이트 : - 내 대답을, 여기 당신이 찾고있는 무엇을 신경 쓰지 : How to get C# Enum description from value?

내가 그것에 대한 해결책을 찾지 못했습니다 및 도우미를 썼다 자신을 기능 :

public static string GetDescription(Enum value) 
    { 
     string ret = value.ToString(); 
     FieldInfo fi = value.GetType().GetField(value.ToString()); 

     if (fi != null) 
     { 
      var att = fi.GetCustomAttribute<DescriptionAttribute>(true); 

      if (att != null) 
       ret = att.Description; 
     } 

     return ret; 
    } 

이 A가 내가 놓친 솔루션에 내장되어있는 경우 3 년 전 ~ 않았거나 내가 기꺼이 대신 사용 것, 이제 하나가있다.

+2

_ "해결책을 찾지 못했습니다"_ 여기 있습니다 : http://stackoverflow.com/questions/2650080/how-to-get-c-sharp-enum-description-from-value –

+0

나는 고쳐 주지만, 이미 내장 된 솔루션이 있었는데, 그때는 – peter

+1

이 내장되어 있지 않습니다. OP가 작성한 것입니다 (또는 Jon Skeet이 [unconstrained-melody] (https://code.google.com/p/unconstrained- 멜로디/)). –