Funzione Seq.readonly<'T> (F#)
Crea un nuovo oggetto sequenza che delega all'oggetto sequenza specificato. In questo modo la sequenza originale non può essere nuovamente individuata e modificata da un cast di tipo. Ad esempio, per una specifica matrice la sequenza restituita restituirà gli elementi della matrice, ma non sarà possibile eseguire il cast dell'oggetto sequenza restituito a una matrice.
Percorso spazio dei nomi/modulo: Microsoft.FSharp.Collections.Seq
Assembly: FSharp.Core (in FSharp.Core.dll)
// Signature:
Seq.readonly : seq<'T> -> seq<'T>
// Usage:
Seq.readonly source
Parametri
source
Tipo: seq<'T>Sequenza di input.
Eccezioni
Eccezione |
Condizione |
---|---|
Generata se la sequenza di input è Null. |
Valore restituito
Sequenza risultante.
Note
Questa funzione è denominata ReadOnly negli assembly compilati. Utilizzare questo nome se si accede alla funzione da un linguaggio diverso da F# o tramite reflection.
Esempio
Nel codice riportato di seguito viene utilizzato Seq.readonly per creare una visualizzazione non modificabile di una matrice modificabile.
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
Piattaforme
Windows 8, Windows 7, Windows Server 2012, Windows Server 2008 R2
Informazioni sulla versione
Versioni della libreria di base F#
Supportato in: 2,0, 4,0, portabile