F #에서 복합 * 유형을 만드는 방법을 배우고 있는데 문제가 발생했습니다. 이 형식 및 ToString 재정의 있습니다.F #의 복합 유형에서 ToString을 어떻게 재정의합니까?
type MyType =
| Bool of bool
| Int of int
| Str of string
with override this.ToString() =
match this with
| Bool -> if this then "I'm True" else "I'm False"
| Int -> base.ToString()
| Str -> this
let c = Bool(false)
printfn "%A" c
"이 생성자는 0 인수에 적용되지만 1을 기대합니다"라는 ToString 재정의 내부에는 오류가 발생합니다. 나는이 코드가 컴파일되지 않을 것이라고 확신했지만, 내가하려고하는 것을 보여준다. 재정의를 주석 처리하고 코드를 실행하면 c
이 "val c : MyType = Bool false"로 인쇄됩니다. 그 코드에 들어가면, c가 부울 으로 설정된 Item
속성을 가지고 있음을 알 수 있습니다. 그러나 코드에서이 속성에 액세스 할 수 없습니다. c
에 주석을 달아도.
이 상황에서 ToString을 어떻게 재정의해야합니까?
* 저는 이것이 복합 유형이라고 확신합니다.