공통 [개발팁] TBooleanHelper.ToString 그리고 TUseBoolStrs
2019.10.21 16:58
마르코 칸투가 작성한 원문보기: https://community.idera.com/developer-tools/b/blog/posts/new-tip-tbooleanhelper-tostring-and-tuseboolstrs-enumeration
몇 년 전 델파이 RTL에 도입된 Boolean 데이터 타입에 대한 네이티브 타입 레코드 헬퍼가 있습니다. 이 중에는 ToString을 포함한 Boolean 변수에 적용할 수 있는 몇 가지 메소드가 있습니다.
Boolean 변수에 ToString을 호출하면 값에 따라 0 또는 -1이 나옵니다.
ToString 방법에는 False 또는 True라는 문자가 포함된 문자열을 반환할 수 있는 파라미터인 UseBoolStrs도 있습니다. 하지만 True.ToString (True)를 호출하더라도 여전히 -1 이 반환됩니다. 어떻게 된 걸까요? 위 정의에서 확인할 수 있듯이 Boolean 파라미터를 호출하는 데에는 정규 인스턴스 방법과 클래스 메소드라고 불리는 ToString 두 가지가 있습니다.
그래서 문제는 어떻게 하면 원하는 문자열을 출력할 수 있을까? 하는 것입니다. 간단히 TUseBoolStrs 열거만 사용하는 방법이 있습니다. 사실 원래 방법에서는 False 또는 True 값인 Boolean을 파라미터로 사용합니다. 이 트릭의 장점은 파라미터 전체 값을 지정할 수 있다는 것입니다.
True.ToString(TUseBoolStrs.True)
이렇게 하면 처음 원했던 True라는 문자열을 반환합니다. 명백한 해결책이라고 볼 수는 없지만, 기존 코드가 호환될 수 있도록 유지할 수 있습니다.