Pergunta

Estou tentando portar um C# existente para F# e estou ficando preso em portar esta linha C#:

public object myInnerOject
Foi útil?

Solução

Em C# object é apenas um nome de tipo que se refere a System.Object. Em F#, você pode usar este nome .NET completo ou um alias de tipo obj.

Agora, em relação a uma declaração de campo - existem várias maneiras de escrever isso dependendo do contexto. Além disso, é uma boa prática inicializar todos os campos em F#, por isso seria útil ver um contexto maior do seu código.

No entanto, você pode escrever isso:

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

Isso cria um campo privado myInnerObj do tipo System.Object inicializado para null, o que é mutável pode ser atribuído mais tarde (myInnerObj <- new Random(), por exemplo). Usei um exemplo no campo privado, porque os campos públicos geralmente são desencorajados no .NET.

Outras dicas

@Tomas está certo. Você também pode querer conferir estes blogs:

A sintaxe básica de F# - tipos

Como é esse código C# em f#?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top