enum.tostring ()가 디버거 툴팁에 표시된 것과 다른 결과를 제공하는 이유는 무엇입니까?
문제
테스트 프로그램 (.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 () 메소드로 떨어집니다.
시각화에 대한 자세한 정보 :
다른 팁
기본값 ToString
표시된 열거에 대한 구현 FlagsAttribute
쉼표로 구분 된 목록입니다. 그러나 반드시는 아닙니다 ToString
디버거에 표시된 결과 - 비트로 값을 렌더링하는 열거에 대한 디버거 시각화 설정이 있어야합니다. OR
기호 또는 파이프.
제휴하지 않습니다 StackOverflow