2017-02-16 12 views
0

내가 그들의 출력 챔피언 같은 장애인 작품을 활성화/동안 처음에 열거공간이

Public Enum Status 
    Enabled = 89 
    Disabled = 78 
    Unknown = 0 
End Enum 

Public Sub Convert() 
    'Something 
    Output.status = Convert.ToChar(Convert.ToInt32(Status.Unknown)).ToString().Trim() 
End Sub 

에서 시작 객체의 상태 플래그를 달성하기 위해 노력하고자를 수 없습니다 = 수없는 Y/N하지만 '알 수없는'상태 반환 " " 트리밍 할, 그 다음 내가 왜 그와 어떻게 알고 있습니다, 나는 이유/구글에 솔루션을 검색 할 수 없습니다 System.Runtime.Serialization.Json.DataContractJsonSerializer

\u0000되었다 예상대로 빈 문자열을 얻습니까?

시간 내 주셔서 감사합니다.

+0

실제로 문자로 변환 할 ASCII 값을 포함하는 열거 형을 갖는 것이 약간 이상한 것처럼 보입니다 .... 약간의 컨텍스트를 설명 할 수 있고,이를 위해 무엇이 필요하며 어떻게'Output.status'가 추가 처리됩니까? 특히 직렬화하면 트림 된 값을 deserialize 할 때 어떤 일이 발생할 것으로 예상합니까? –

+0

@ RenéVogt 우리는 정말 이런 종류의 플래그를 포함하고 있기 때문에 나는 다음의 프로그래머를 원하지 않는다. 왜냐하면 그것은 클라이언트 측을 다루는 공급 업체의 요구 사항이기 때문에 디서 리얼 라이징 할 때 무슨 일이 일어나고 있는지 알지 못한다. 그들에 대해 혼란 스러웠습니다. (Y는 사용 가능 또는 삭제 또는 isHidden 등을 나타낼 수 있습니다. 이유는 나에게도 물어 보지 않습니다. 너무 좋아서 LOL을 알고 싶습니다.) –

답변

1

0을 char로 변환하면 '\0' 인 이진수는 0이됩니다. 공백 문자 대신 32 (0x20)이 필요합니다.

그래서 당신은 당신의 Status.Unkown

(32)로
Public Enum Status 
    Enabled = 89 
    Disabled = 78 
    Unknown = 32 // white space 
End Enum 

를 선언하거나 문자열 변환에서 추가 치료가 필요 할 수있다.

+0

정말 고마워요! 빈 문자열을 얻을 수있는 방법이 있는지 알 수 있습니까? –

+0

@ ZayLau '32'접근법을 사용하는 경우 마지막 문자열은 다듬기 후에 비워야합니다. –