Compartir a través de


Seq.readonly<'T> (Función de F#)

Crea un nuevo objeto de secuencia que delega en el objeto de secuencia especificado.De este modo, se garantiza que la secuencia original no pueda volver a detectarse ni sufrir una mutación mediante una conversión de tipo.Por ejemplo, si se especifica una matriz, la secuencia devuelta devolverá los elementos de la matriz pero no se podrá convertir el objeto de secuencia devuelto en una matriz.

Espacio de nombres/Ruta de acceso del módulo: Microsoft.FSharp.Collections.Seq

Ensamblado: FSharp.Core (en FSharp.Core.dll)

// Signature:
Seq.readonly : seq<'T> -> seq<'T>

// Usage:
Seq.readonly source

Parámetros

  • source
    Tipo: seq<'T>

    Secuencia de entrada.

Excepciones

Excepción

Condition

ArgumentNullException

Se produce cuando la secuencia de entrada es NULL.

Valor devuelto

Secuencia resultante.

Comentarios

Esta función se denomina ReadOnly en los ensamblados compilados.Si obtiene acceso a la función desde un lenguaje distinto de F# o mediante reflexión, use este nombre.

Ejemplo

El código siguiente usa Seq.readonly para crear una vista inmutable de una matriz mutable.

type ArrayContainer(start, finish) =
    let internalArray = [| start .. finish |]
    member this.RangeSeq = Seq.readonly internalArray
    member this.RangeArray = internalArray

let newArray = new ArrayContainer(1, 10)
let rangeSeq = newArray.RangeSeq
let rangeArray = newArray.RangeArray
// These lines produce an error: 
//let myArray = rangeSeq :> int array
//myArray.[0] <- 0
// The following line does not produce an error. 
// It does not preserve encapsulation.
rangeArray.[0] <- 0

Plataformas

Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2

Información de versiones

Versiones de la biblioteca básica de F#

Se admite en: 2.0, 4.0, portables

Vea también

Referencia

Collections.Seq (Módulo de F#)

Microsoft.FSharp.Collections (Espacio de nombres de F#)