내가이 개 C# 코드에서 선언 된 클래스가 : 올바른 과부하가 미리 선언해야 out 매개 변수 유형에 의해 결정되기 때문에 C 번호에서 B.TryParse
를 호출하는 동안F # : 정적 과부하를 지정하는 방법은 무엇입니까?
public class A
{
public static bool TryParse(string value, out A result)
{
...
}
}
public class B : A
{
public static bool TryParse(string value, out B result)
{
...
}
}
는 문제가되지 않습니다. out 매개 변수는 F #에서 결과의 일부로 변형되었으므로 동일한 매개 변수 시그니처가있는 두 개의 함수가 있습니다 ... F #에서 호출하면 A unique overload for method 'TryParse' could not be determined based on type information prior to this program point. A type annotation may be needed.
오류가 발생합니다. 문제를 이해하고 심지어 TryParse
을 new
...으로 선언 할 수도 있습니다. 정적이지 않은 경우
메시지 자체는별로 도움이되지 않습니다. 어떤 종류의 주석과 어디에 추가해야하는지 명확히하지 않습니다.
이 전화는 어떻게해야합니까? 가장 바보 같은 생각은 함수 중 하나의 이름을 바꾸는 것이지만 더 영리한 방법이있을 수 있습니까?
리턴 값의 유형을 지정하고 F #이 오버로드를 유추 할뿐만 아니라 다음과 같이 원하는 오버로드를 직접 지정할 수 있습니다.'(Int32.TryParse : string -> bool * int) "4"' –