C# コードで宣言された 2 つのクラスがあります。
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)
{
...
}
}
C# からの呼び出しB.TryParse
は問題ありませんが、正しいオーバーロードは、事前に宣言する必要がある out パラメーターの型によって決定されるためです。out パラメーターは F# の結果の一部に変換されるため、同じパラメーター シグネチャを持つ 2 つの関数を取得しました...そして、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
...もしそれが静的でなければ。
メッセージ自体はあまり役に立ちません。どのような種類の注釈をどこに追加すればよいかがまったくわかりません。
どうすればこの電話をかけることができますか? 最もばかげた考えは、関数の 1 つの名前を変更することですが、もっと賢い方法があるのではないでしょうか?