지도 또는 시퀀스와 같은 내장 컬렉션에서 tostring 기능을 재정의하려면 어떻게해야합니까? printfn에서이 새로운 맞춤형 tostring 기능을 사용하게하려면 어떻게해야합니까?내장 컬렉션에서 tostring을 재정의하는 방법
나는
type seq<'T> with
override xs.Tostring() =
"blabla"
그러나 이것은 단지 오류 "유형 약어 보강을 가질 수 없습니다"제공 무언가 같이해야한다 생각합니다.
나는 다음 http://msdn.microsoft.com/en-us/library/dd233211.aspx
내가
type System.Int32 with
member this.FromString(s : string) =
System.Int32.Parse(s)
type seq<'T> with
/// Repeat each element of the sequence n times
member xs.RepeatElements(n: int) =
seq { for x in xs do for i in 1 .. n do yield x }
먼저 예를 다음과 같이 예를 들어 INT32 및 시퀀스 확장 할 수 있어야한다는 내용의 대한 그러나 잘 작동 형의 확장에 대해 다음 MSDN 보았다 발견 두 번째 하나는 그냥 "타입 약어는 회원을 가질 수 없다"는 오류 메시지가 나타납니다..
나는 현재 닷넷 4.5.1 및 F 번호 3.1
일반적으로 .NET에서 수행 할 수 없습니다. [이 질문에 대한 답변] (http://stackoverflow.com/questions/9697332/how-can-ioverride) -tostring-method-for-all-ienumarableint32). 그러나'printfn'을 다시 정의하여 그렇게 할 수 있습니다. – Gustavo