Share via


Seq.readonly<'T>-Funktion (F#)

Erstellt ein neues Sequenzobjekt, das an das angegebene Sequenzobjekt delegiert wird. Dadurch wird sichergestellt, dass die ursprüngliche Sequenz nicht erneut von einer Typumwandlung erkannt und verändert werden kann. Beispielsweise enthält die zurückgegebene Sequenz bei einem angegebenen Array die Elemente des Arrays; das zurückgegebene Sequenzobjekt kann jedoch nicht in ein Array konvertiert werden.

Namespace/Modulpfad: Microsoft.FSharp.Collections.Seq

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

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

// Usage:
Seq.readonly source

Parameter

  • source
    Typ: seq<'T>

    Die Eingabesequenz.

Ausnahmen

Ausnahme

Bedingung

ArgumentNullException

Wird ausgelöst, wenn die Eingabesequenz NULL ist.

Rückgabewert

Die Ergebnissequenz.

Hinweise

Der Name dieser Funktion in kompilierten Assemblys lautet ReadOnly. Verwenden Sie diesen Namen, wenn Sie in einer anderen .NET-Sprache als F# oder durch Reflektion auf die Funktion zugreifen.

Beispiel

Der folgende Code verwendet Seq.readonly zum Erstellen einer unveränderlichen Ansicht eines änderbaren Arrays zu erstellen.

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

Plattformen

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

Versionsinformationen

F#-Runtime

Unterstützt in: 2.0, 4.0

Silverlight

Unterstützt in: 3

Siehe auch

Weitere Ressourcen

Collections.Seq-Modul (F#)

Microsoft.FSharp.Collections-Namespace (F#)