F# - Calling a c# method with overloads and params

f#

Solution

You found the solution, but to add some explanation:

The C# compiler treats `Nullable<T>` specially. One example is `null` can be substituted for `new Nullable<T>()`. Here is another example.

In F#, `Nullable<'T>` is just another type: no sugar, no magic. `option<'T>` is the closest thing to a `Nullable` counterpart, and is used for optional parameters. Your function could look like this, if defined in F#:

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

T.TqlForBidAskTrade("foo")

Problem

No idea how the 30 other articles have managed to not help me here, but I'm working with a c# dll with these overloads: ``` function TqlForBidAskTrade(string, int?, params string[]) function TqlForBidAskTrade(string[], int?, params string[]) ``` I can call this method with the params I want in c# like this: ``` TqlForBidAskTrade("string", null) ``` What is the equivalent in F#? I can't seem to get anything to compile at all. I've tried: ``` 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"]) ``` It sure seems like w/ all of the similar requests I should have stumbled across this, but I've been looking for an hour.

Original source

Related problems