F # équivalent de « objet » du mot-clé C #
Question
Je suis en train de porter une c # existant à f # et je ne rester coincé sur le portage de cette c # ligne:
public object myInnerOject
La solution
En C # object
est juste un nom de type référence à System.Object
. En F #, vous pouvez utiliser ce nom complet .NET ou un obj
alias de type.
Maintenant, en ce qui concerne une déclaration sur le terrain - il y a différentes façons d'écrire que, selon le contexte. En outre, il est une bonne pratique pour initialiser tous les champs de F #, il serait utile de voir le contexte plus large de votre code.
Cependant, vous pouvez écrire ceci:
type A() =
let mutable (myInnerObj:obj) = null
Cela crée un champ privé myInnerObj
de type System.Object
initialisé à null
, qui est mutable peut être attribué plus tard (myInnerObj <- new Random()
, par exemple). Je exemple avec le champ privé, car les champs publics sont généralement déconseillés dans .NET.
Autres conseils
@Tomas est juste. Vous pouvez également consulter ces blogs: