Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede definir campos privados y funciones privadas para las clases de F# mediante let enlaces en la definición de clase.
Sintaxis
// Field.
[static] let [ mutable ] binding1 [ and ... binding-n ]
// Function.
[static] let [ rec ] binding1 [ and ... binding-n ]
Observaciones
La sintaxis anterior aparece después del encabezado de clase y las declaraciones de herencia, pero antes de cualquier definición de miembro. La sintaxis es similar a la de let los enlaces fuera de las clases, pero los nombres definidos en una clase tienen un ámbito limitado a la clase . Un let enlace crea un campo o función privado; para exponer datos o funciones públicamente, declare una propiedad o un método miembro.
Un let enlace que no es estático se denomina enlace de instancia let . Los enlaces de instancia let se ejecutan cuando se crean objetos. Los enlaces estáticos let forman parte del inicializador estático de la clase , que se garantiza que se ejecute antes de que se use el tipo por primera vez.
El código dentro de los enlaces de instancia let puede usar los parámetros del constructor principal.
Los atributos y los modificadores de accesibilidad no se permiten en let los enlaces de las clases.
En los ejemplos de código siguientes se muestran varios tipos de let enlaces en clases.
type PointWithCounter(a: int, b: int) =
// A variable i.
let mutable i = 0
// A let binding that uses a pattern.
let (x, y) = (a, b)
// A private function binding.
let privateFunction x y = x * x + 2 * y
// A static let binding.
static let mutable count = 0
// A do binding.
do count <- count + 1
member this.Prop1 = x
member this.Prop2 = y
member this.CreatedCount = count
member this.FunctionValue = privateFunction x y
let point1 = PointWithCounter(10, 52)
printfn "%d %d %d %d" (point1.Prop1) (point1.Prop2) (point1.CreatedCount) (point1.FunctionValue)
La salida es la siguiente.
10 52 1 204
Formas alternativas de crear campos
También puede usar la val palabra clave para crear un campo privado. Cuando se usa la val palabra clave , el campo no recibe un valor cuando se crea el objeto, sino que se inicializa con un valor predeterminado. Para obtener más información, vea Campos explícitos: la palabra clave val.
También puede definir campos privados en una clase mediante una definición de miembro y agregando la palabra clave private a la definición. Esto puede ser útil si espera cambiar la accesibilidad de un miembro sin volver a escribir el código. Para obtener más información, consulte Control de acceso.