F# equivalent of the C# 'object' keyword

c#, c#-to-f#, f#

Solution

In C# `object` is just a type name referring to `System.Object`. In F#, you can either use this full .NET name or a type alias `obj`.

Now, regarding a field declaration - there are various ways to write that depending on the context. Also, it is a good practice to initialize all fields in F#, so it would be useful to see larger context of your code.

However, you may write this:

type A() = 
  let mutable (myInnerObj:obj) = null

This creates a private field `myInnerObj` of type `System.Object` initialized to `null`, which is mutable can can be assigned later (`myInnerObj <- new Random()`, for example). I used example with private field, because public fields are generally discouraged in .NET.

Problem

I am trying to port an existing c# to f# and would I am getting stuck on porting this c# line: ``` public object myInnerOject ```

Original source