Domanda

Sto cercando di porto uno esistente c # per F # e sarebbe sto ottenendo bloccato sul porting di questa linea C #:

public object myInnerOject
È stato utile?

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:

La sintassi di base di F # - tipi

Che cosa significa questo sguardo C # codice come in F #?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top