Reputation: 29444
I want to call System.Uri.TryCreate()
:
let uriResult: System.Uri = ref (* what's here? *);
System.Uri.TryCreate(uriName, UriKind.Absolute, uriResult)
As I've learned here, one has to pass a F# reference for .NET out parameters.
But how can I initialize my reference uriResult
in my case?
I've tried creating a new, empty Uri object.
let uriResult: System.Uri = ref (new System.Uri());
Error 1
This expression was expected to have type
Uri
but here has type
'a ref
Upvotes: 7
Views: 1259
Reputation: 47914
As explained in Parameters and Arguments on MSDN (see Passing by Reference), out parameters are automatically tuplized, so you can do this:
match System.Uri.TryCreate(uriName, UriKind.Absolute) with
| true, uriResult -> //OK
| _ -> //not a Uri
Upvotes: 14