Partager via


Seq.readonly<'T>, fonction (F#)

Crée un nouvel objet de séquence qui délègue à l'objet de séquence donné. Cette action garantit que la séquence d'origine ne peut pas être redécouverte et subir de mutation par un cast de type. Par exemple, étant donné un tableau spécifique, la séquence retournée retournera les éléments de ce tableau, mais vous ne pourrez pas effectuer un cast de l'objet de séquence retourné en un tableau.

Espace de noms/Chemin du module : Microsoft.FSharp.Collections.Seq

Assembly : FSharp.Core (in FSharp.Core.dll)

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

// Usage:
Seq.readonly source

Paramètres

  • source
    Type : seq<'T>

    Séquence d'entrée.

Exceptions

Exception

Condition

ArgumentNullException

Levée lorsque la séquence d'entrée a la valeur Null.

Valeur de retour

Séquence de résultat.

Notes

Cette fonction se nomme ReadOnly dans les assemblys compilés. Si vous accédez à la fonction à partir d'un langage autre que F# ou par réflexion, utilisez ce nom.

Exemple

Le code suivant utilise Seq.readonly pour créer une vue immuable d'un tableau 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

Plateformes

Windows 7, Windows Vista SP2, Windows XP SP3, Windows XP x64 SP2, Windows Server 2008 R2, Windows Server 2008 SP2, Windows Server 2003 SP2

Informations de version

Runtime F#

Pris en charge dans : 2.0, 4.0

Silverlight

Prise en charge dans : 3

Voir aussi

Référence

Collections.Seq, module (F#)

Microsoft.FSharp.Collections, espace de noms (F#)