3

他の30の記事がここで私を助けてくれなかった方法はわかりませんが、私はこれらのオーバーロードでac#dllを使用しています:

function TqlForBidAskTrade(string, int?, params string[])
function TqlForBidAskTrade(string[], int?, params string[])

このメソッドは、次のようにC#で必要なパラメーターを使用して呼び出すことができます。

TqlForBidAskTrade("string", null)

F#で同等のものは何ですか?コンパイルするものがまったくないようです。私はもう試した:

TqlForBidAskTrade("string", null)
TqlForBidAskTrade("string", Nullable<int>())
TqlForBidAskTrade("string", Nullable<int>(), null)
TqlForBidAskTrade("string", Nullable<int>(), [])
TqlForBidAskTrade("string", Nullable<int>(), ["doodah"])
TqlForBidAskTrade("string", 4, ["doodah"])

確かに、これに遭遇したはずの同様のリクエストがすべてあるように見えますが、私は1時間探していました。

4

2 に答える 2

5

あなたは解決策を見つけましたが、いくつかの説明を追加します:

C#コンパイラはNullable<T>特別に扱います。1つの例はnull、の代わりに使用できますnew Nullable<T>()別の例を次に示します。

F#では、これNullable<'T>は単なる別のタイプです。砂糖も魔法もありません。option<'T>対応するものに最も近いものであり、オプションのパラメータNullableに使用されます。F#で定義されている場合、関数は次のようになります。

type T =
  static member TqlForBidAskTrade(s:string, ?n:int, ?args:string[]) = ()

T.TqlForBidAskTrade("foo")
于 2013-02-22T21:30:01.063 に答える
5

そして...顔の手のひら。
TqlForBidAskTrade( "string"、Nullable())は機能しました。ランダムなコードをいじくり回して、構文を台無しにしました。

于 2013-02-22T21:24:20.090 に答える