F # equivalente del C # 'oggetto' parola chiave
Domanda
Sto cercando di porto uno esistente c # per F # e sarebbe sto ottenendo bloccato sul porting di questa linea C #:
public object myInnerOject
Soluzione
In C # object
è solo un nome tipo di riferimento a System.Object
. In F #, è possibile utilizzare questo nome NET completo o un obj
tipo di alias.
Ora, per quanto riguarda una dichiarazione di campo - ci sono vari modi di scrivere che a seconda del contesto. Inoltre, è una buona pratica per inizializzare tutti i campi di F #, quindi sarebbe utile vedere più ampio contesto del codice.
Tuttavia, è possibile scrivere questo:
type A() =
let mutable (myInnerObj:obj) = null
Questo crea un campo myInnerObj
privata di tipo System.Object
inizializzato a null
, che è può mutabile può essere assegnato in seguito (myInnerObj <- new Random()
, per esempio). Ho usato ad esempio con il campo privato, perché i campi pubblici sono generalmente scoraggiato in .NET.
Altri suggerimenti
@Tomas è giusto. Si consiglia inoltre di controllare questi blog: