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 |
---|---|
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