enum.tostring ()가 디버거 툴팁에 표시된 것과 다른 결과를 제공하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com/questions/2052551

  •  20-09-2019
  •  | 
  •  

문제

테스트 프로그램 (.NET 2.0) :

[Flags]
enum MyEnum
{
    Member1 = 1,
    Member2 = 2,
}

class Program
{
    // Inspecting r shows "Member1 | Member2"
    MyEnum r = MyEnum.Member1 | MyEnum.Member2;

    // s = "Member1, Member2"
    string s = r.ToString();
}

나는 기대했을 것이다 .ToString() 멤버가 파이프로 분리 된 멤버와 함께 끈을 반환하지만 그렇지 않습니다.

보너스 정보 : 전화 Enum.Parse() 쉼표로 구분 된 문자열에서 성공하는 동안 파이프 분리 문자열이 실패합니다.

도움이 되었습니까?

해결책

VS 디버거는 시각화를 사용하여 값을 표시합니다. 특정 데이터 유형에 대한 비주얼 라이저가없는 경우에만 .tostring () 메소드로 떨어집니다.

시각화에 대한 자세한 정보 :

http://msdn.microsoft.com/en-us/library/zayyhzts.aspx

다른 팁

기본값 ToString 표시된 열거에 대한 구현 FlagsAttribute 쉼표로 구분 된 목록입니다. 그러나 반드시는 아닙니다 ToString 디버거에 표시된 결과 - 비트로 값을 렌더링하는 열거에 대한 디버거 시각화 설정이 있어야합니다. OR 기호 또는 파이프.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top