2009-12-18 1 views
3

에 불면. 문제는 다른 개체 나에게 같은 문제를 줄 것이다 것입니다,F # 문자열 연산자는 F #으로 다음 두 줄이 동일한 결과를 제공하기로되어 있는지 내가 인상이었다 GUID를

System.FormatException occurred 
Message="Format String can be only \"D\", \"d\", \"N\", \"n\", \"P\", \"p\", \"B\" or \"b\"." 
Source="mscorlib" 
StackTrace: 
    at System.Guid.ToString(String format, IFormatProvider provider) 
InnerException: 

내가 확실히 별도로 GUID를 처리 할 수 ​​있습니다 : 그것은 V가 System.Guid 경우 첫 번째 줄은 단지 예외가 발생 밝혀? 문자열 연산자를 전혀 사용하지 않아야합니까? 내 경우에는 개체가 잠재적으로 아무 것도 될 수 있습니다

답변

8

이것은 다음 릴리스에서 수정 될 버그입니다.

(일반적으로 작동해야하며, IFormattable에 대한 문서에서 모든 구현자가 "G"지정자를 구현해야한다는 사실에도 불구하고 System.Guid가 IFormattable "G"지정자에 응답하지 않기 때문에 버그가 발생합니다. 따라서 System.Guid의 버그 일 뿐이지 만 F # 라이브러리는 다음 릴리스의 'string'연산자에서이 버그를 해결할 것입니다.

요약하면 Guid를 제외하고는이 연산자를 안전하게 사용할 수 있습니다 그 동안에도 곧 수정 될 것입니다. 그 동안에는 특별한 경우 Guid가 될 수 있습니다.)

+0

그래서 F #이 버그를 해결하지만 버그 자체는 수정되지 않습니까? –

+2

오른쪽. (System.Guid를 소유 한 팀이 이미 지난 7 년 동안이 명백한 버그를 5 번 출하했다면 지금 해결할 것 같지 않습니다.) – Brian

+1

이제 실제 기능 프로그래밍 . ;-) –