Spazio dei nomi Microsoft.FSharp.Core (F#)

Lo spazio dei nomi contiene funzionalità che supportano le funzionalità di base di F#, tra cui primitivi di linguaggio operatori, attributi, tipi primitivi, stringhe e I/O formattato.

Percorso di spazio dei nomi/modulo: Microsoft.FSharp.Core

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

namespace Microsoft.FSharp.Core

Moduli

Modulo

Descrizione

modulo ExtraTopLevelOperators

Tipi e operatori F# aggiuntivi disponibili senza aprire un modulo o uno spazio dei nomi.

modulo LanguagePrimitives

Primitive di linguaggio associati al linguaggio F#

modulo NumericLiterals

Fornisce implementazioni predefinite della sintassi di valori numerici letterali F# per valori letterali nel formato 'dddI'.

modulo Operators

Operatori F# di base. Questo modulo viene aperto automaticamente in ogni codice F#.

modulo OptimizedClosures

Un modulo di implementazione utilizzato per mantenere alcune implementazioni private di chiamata ai valori di funzione.

modulo Option

Operazioni di base sulle opzioni.

modulo Printf

Formattazione printf-style estendibile per numeri e altri tipi di dati

modulo String

Operatori di programmazione funzionale per l'elaborazione di stringhe. Ulteriori operazioni sulle stringhe sono disponibili tramite le funzioni membro su stringhe e altre funzionalità nei tipi String e Regex.

Definizioni dei tipi

Tipo

Descrizione

tipo [,,,]<'T>

Matrici quadrimensionali, in genere in base zero. È possibile creare matrici in base diversa da zero utilizzando metodi nel tipo System.Array.

tipo [,,]<'T>

Matrici tridimensionali, in genere in base zero. È possibile creare matrici in base diversa da zero utilizzando metodi nel tipo System.Array.

tipo [,]<'T>

Matrici bidimensionali, in genere in base zero.

tipo []<'T>

Matrici unidimensionali, in base zero, scritte int[], string[] e così via.

tipo AbstractClassAttribute

L'aggiunta di questo attributo a una definizione di classe rende tale classe astratta, ovvero non è necessario implementarne tutti i metodi. Le istanze di classi astratte non possono essere costruite in modo diretto.

tipo AllowNullLiteralAttribute

Se si aggiunge questo attributo a un tipo, per quest'ultimo sarà consentito l'utilizzo del valore letterale 'null' all'interno del codice F#. Questo attributo può essere aggiunto esclusivamente a tipi di interfaccia o di classe definiti in F#.

tipo AutoOpenAttribute

Questo attributo viene utilizzato per due scopi. Se applicato a un assembly, deve essere provvisto di un argomento stringa il quale deve indicare uno spazio dei nomi o un modulo valido nell'assembly in questione. I file di codice sorgente compilati con un riferimento a questo assembly vengono elaborati in un ambiente in cui il percorso specificato viene aperto automaticamente.

tipo AutoSerializableAttribute

Se si aggiunge questo attributo a un tipo con valore 'false', il comportamento in base al quale F# rende Serializable tale tipo per impostazione predefinita viene disabilitato.

tipo byref<'T>

Rappresenta un puntatore gestito nel codice F#.

tipo Choice<'T1,'T2,'T3,'T4,'T5,'T6,'T7>

Tipi di helper per criteri attivi con 7 scelte.

tipo Choice<'T1,'T2,'T3,'T4,'T5,'T6>

Tipi di helper per criteri attivi con 6 scelte.

tipo Choice<'T1,'T2,'T3,'T4,'T5>

Tipi di helper per criteri attivi con 5 scelte.

tipo Choice<'T1,'T2,'T3,'T4>

Tipi di helper per criteri attivi con 4 scelte.

tipo Choice<'T1,'T2,'T3>

Tipi di helper per criteri attivi con 3 scelte.

tipo Choice<'T1,'T2>

Tipi di helper per criteri attivi con 2 scelte.

tipo ClassAttribute

Se si aggiunge questo attributo a un tipo quest'ultimo verrà rappresentato mediante una classe CLI.

tipo CLIEventAttribute

Se si aggiunge questo attributo a una proprietà con tipo di evento, la proprietà verrà compilata come evento di metadati CLI, tramite una conversione sintattica in una coppia di metodi 'add_EventName' e 'remove_EventName'.

tipo ComparisonConditionalOnAttribute

Questo attributo consente di indicare che un tipo di contenitore generico soddisfa il vincolo 'comparison' di F# solo se esso viene soddisfatto anche da un argomento generico. Se ad esempio si aggiunge questo attributo al parametro 'T in una definizione di tipo C<'T>, si indica che un tipo C<X> supporta il confronto solo se anche il tipo X lo supporta e vengono soddisfatte tutte le altre condizioni che consentono il supporto del confronto da parte di C<X>. Il tipo C<'T> può comunque essere utilizzato con altri argomenti di tipo, ma un tipo quale C<(int -> int)> non supporterà il confronto poiché il tipo (int -> int) è un tipo di funzione F# e non supporta il confronto.

tipo CompilationArgumentCountsAttribute

Questo attributo viene generato automaticamente dal compilatore F# per contrassegnare funzioni e membri che accettano un'applicazione parziale di alcuni dei relativi argomenti e restituiscono una funzione residua

tipo CompilationMappingAttribute

Questo attributo viene inserito in modo automatico dal compilatore F# per contrassegnare tipi e metodi nel codice CLI generato con flag che indicano la corrispondenza con i costrutti di origine originali. Viene utilizzato dalle funzioni nello spazio dei nomi Microsoft.FSharp.Reflection per eseguire il mapping inverso dei costrutti compilati alle rispettive forme originali. Non è destinato all'utilizzo da parte del codice utente.

tipo CompilationRepresentationAttribute

Questo attributo consente di regolare la rappresentazione di runtime per un tipo. Può essere ad esempio impiegato per indicare la possibilità di utilizzare la rappresentazione null per un tipo. Questa condizione influisce sulla modalità di compilazione di alcuni costrutti.

tipo CompilationRepresentationFlags

Indica una o più modifiche alla rappresentazione compilata di un tipo o membro F#.

tipo CompilationSourceNameAttribute

Questo attributo viene inserito in modo automatico dal compilatore F# per contrassegnare metodi a cui viene associato l'attributo 'CompiledName'. Non è destinato all'utilizzo da parte del codice utente.

tipo CompiledNameAttribute

Se si aggiunge questo attributo a una definizione di funzione o a un valore in un modulo F#, viene modificato il nome utilizzato per il valore nel codice CLI compilato.

tipo CompilerMessageAttribute

Indica che deve essere creato un messaggio quando il codice sorgente F# utilizza questo costrutto.

tipo CustomComparisonAttribute

L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo con un'implementazione di confronto definita dall'utente.

tipo CustomEqualityAttribute

L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo con un'implementazione di uguaglianza definita dall'utente.

tipo decimal<'Measure>

Il tipo dei numeri decimali, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Decimal a livello di rappresentazione.

tipo DefaultAugmentationAttribute

L'aggiunta di questo attributo a un'unione discriminata con valore false disabilita la generazione di tester di membri di supporto standard, membri di funzioni di accesso e costruttori per la classe CLI generata per il tipo specificato.

tipo DefaultValueAttribute

Se si aggiunge questo attributo a una dichiarazione di campo, quest'ultimo non viene inizializzato. Durante il controllo del tipo, viene dichiarato un vincolo in base al quale il tipo di campo supporta 'Null'. Se il valore di 'check' è false, il vincolo non viene dichiarato.

tipo EntryPointAttribute

L'aggiunta di questo attributo a una funzione indica che si tratta del punto di ingresso per un'applicazione. Se l'assente non è specificato per un EXE, viene utilizzata come punto di ingresso l'inizializzazione implicita nelle associazioni di modulo nell'ultimo file della sequenza di compilazione.

tipo EqualityConditionalOnAttribute

Questo attributo consente di indicare che un tipo di contenitore generico soddisfa il vincolo 'equality' di F# solo se esso viene soddisfatto anche da un argomento generico. Se ad esempio si aggiunge questo attributo al parametro 'T in una definizione di tipo C<'T>, si indica che un tipo C<X> supporta l'uguaglianza solo se anche il tipo X la supporta e vengono soddisfatte tutte le altre condizioni che consentono il supporto dell'uguaglianza da parte di C<X>. Il tipo C<'T> può comunque essere utilizzato con altri argomenti di tipo, ma un tipo quale C<(int -> int)> non supporterà l'uguaglianza poiché il tipo (int -> int) è un tipo di funzione F# e non supporta l'uguaglianza.

tipo ExperimentalAttribute

Questo attributo consente di contrassegnare valori appartenenti a una funzionalità della libreria sperimentale.

tipo float<'Measure>

Il tipo dei numeri a virgola mobile, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Double a livello di rappresentazione.

tipo float32<'Measure>

Il tipo dei numeri a virgola mobile, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Single a livello di rappresentazione.

tipo FSharpFunc<'T,'U>

Il tipo CLI utilizzato per rappresentare valori di funzione F#. Questo tipo non viene in genere utilizzato in modo diretto, sebbene possa essere utilizzato da altri linguaggi CLI.

tipo FSharpInterfaceDataVersionAttribute

Questo attributo viene aggiunto agli assembly generati per indicare la versione dello schema di dati utilizzata per codificare ulteriori informazioni specifiche di F# nella risorsa associata alle librerie F# compilate.

tipo FSharpTypeFunc

Il tipo CLI utilizzato per rappresentare valori di funzione di tipo di prima classe di F#. Questo tipo è destinato all'utilizzo da parte del codice F# compilato.

tipo FuncConvert

Funzioni di helper per la conversione di valori di funzione di prima classe di F# da e in rappresentazioni CLI di funzioni con delegati.

tipo GeneralizableValueAttribute

L'aggiunta di questo attributo a un valore non di funzione con parametri generici indica che gli utilizzi del costrutto possono generare codice generico tramite inferenza del tipo.

tipo ilsigptr<'T>

Questo tipo viene utilizzato per uso interno dal generatore di codice F#.

tipo int<'Measure>

Il tipo dei numeri interi con segno a 32 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int32 a livello di rappresentazione.

tipo int16<'Measure>

Il tipo dei Signed Integer a 16 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int16 a livello di rappresentazione.

tipo int64<'Measure>

Il tipo dei Signed Integer a 64 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.Int64 a livello di rappresentazione.

tipo InterfaceAttribute

L'aggiunta di questo attributo a un tipo determina la rappresentazione di quest'ultimo mediante un'interfaccia CLI.

tipo LiteralAttribute

L'aggiunta di questo attributo a un valore determina la compilazione di quest'ultimo come valore letterale costante CLI.

tipo MeasureAnnotatedAbbreviationAttribute

L'aggiunta di questo attributo a un tipo determina l'interpretazione di quest'ultimo come tipo rifinito, limitato attualmente ai tipi con parametri di misura. Può essere utilizzato solo in un numero molto limitato di condizioni.

tipo MeasureAttribute

Se si aggiunge questo attributo a un tipo, quest'ultimo verrà interpretato come unità di misura. Può essere utilizzato solo in un numero molto limitato di condizioni.

tipo nativeptr<'T>

Rappresenta un puntatore non gestito nel codice F#.

tipo NoComparisonAttribute

L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo in cui il confronto è un'operazione anomala. Ciò significa che il tipo non soddisfa il vincolo 'comparison' di F#. All'interno dei limiti del sistema di tipi F#, ciò consente di garantire che le istanze della funzione di confronto generico di F# non vengano create direttamente in questo tipo. L'attributo e il controllo non vincolano l'utilizzo del confronto con tipi di base o figlio di questo tipo.

tipo NoDynamicInvocationAttribute

Questo attributo consente di contrassegnare valori che non possono essere richiamati dinamicamente al runtime. L'attributo viene in genere aggiunto a funzioni inline le cui implementazioni includono codice non verificabile. Fa in modo che il corpo del metodo creato per la funzione inline generi un'eccezione se viene richiamato in modo dinamico, anziché includere il codice non verificabile nell'assembly generato.

tipo NoEqualityAttribute

L'aggiunta di questo attributo a un tipo indica che si tratta di un tipo in cui l'uguaglianza è un'operazione anomala. Ciò significa che il tipo non soddisfa il vincolo di 'uguaglianza' di F#. Entro i limiti del sistema di tipi F#, ciò consente di garantire che le istanze della funzione di uguaglianza generica F# non vengano create direttamente in questo tipo. L'attributo e il controllo non vincolano l'utilizzo del confronto con tipi di base o figlio di questo tipo.

tipo Option<'T>

Tipo di valori facoltativi. Se utilizzato da altri linguaggi CLI l'opzione vuota corrisponde al valore null.

tipo OptionalArgumentAttribute

Questo attributo viene aggiunto automaticamente per tutti gli argomenti facoltativi.

tipo PrintfFormat<'Printer,'State,'Residue,'Result,'Tuple>

Tipo di un'espressione di formattazione.

tipo PrintfFormat<'Printer,'State,'Residue,'Result>

Tipo di un'espressione di formattazione.

tipo Ref<'T>

tipo dei riferimenti modificabili. Utilizzare le funzioni [:=] e [!] per ottenere e impostare valori di questo tipo.

tipo ReferenceEqualityAttribute

Se si aggiunge questo attributo a un tipo di unione o record, viene disabilitata la generazione automatica di override per 'System.Object.Equals(obj)', 'System.Object.GetHashCode()' e 'System.IComparable' per il tipo. Il tipo utilizzerà per impostazione predefinita l'uguaglianza dei riferimenti.

tipo ReflectedDefinitionAttribute

Se si aggiunge questo attributo all'associazione let per la definizione di un valore di primo livello, l'espressione quotation che implementa il valore viene resa disponibile per l'utilizzo al runtime.

tipo RequireQualifiedAccessAttribute

Questo attributo consente di indicare che i riferimenti agli elementi di un tipo di unione, record o modulo richiedono l'accesso qualificato esplicito.

tipo RequiresExplicitTypeArgumentsAttribute

L'aggiunta di questo attributo a un tipo, un valore o un membro prevede che gli utilizzi del costrutto creino in modo esplicito istanze di parametri di tipo generici.

tipo sbyte<'Measure>

Il tipo dei numeri interi con segno a 8 bit, annotato con un'unità di misura. L'unità di misura viene cancellata nel codice compilato e nel caso in cui i valori di questo tipo vengano analizzati mediante reflection. Il tipo è equivalente a System.SByte a livello di rappresentazione.

tipo SealedAttribute

Se si aggiunge questo attributo a una definizione di classe, quest'ultima viene resa sealed, ovvero non può essere estesa o implementata.

tipo SourceConstructFlags

Indica la relazione tra un'entità compilata in un binario CLI e un elemento nel codice sorgente F#.

tipo StructAttribute

L'aggiunta di questo attributo a un tipo ne determina la rappresentazione mediante uno struct CLI.

tipo StructuralComparisonAttribute

Se si aggiunge questo attributo a un tipo di record, unione, eccezione o struct, viene confermata la generazione automatica di implementazioni per 'System.IComparable' per il tipo.

tipo StructuralEqualityAttribute

L'aggiunta di questo attributo a un tipo di unione, record o struct conferma la generazione automatica di override per 'System.Object.Equals(obj)' e 'System.Object.GetHashCode()' per il tipo.

tipo StructuredFormatDisplayAttribute

Questo attributo consente di indicare la modalità di visualizzazione predefinita di un tipo in caso di utilizzo degli schemi di formattazione printf '%A' e altri layout di visualizzazione bidimensionali basati su testo. In questa versione di F# gli unici valori validi sono del formato PreText {PropertyName} PostText. Il nome della proprietà indica una proprietà da valutare e visualizzare al posto dell'oggetto stesso.

tipo Unit

Il tipo 'unit', che dispone di un solo valore "()". Questo valore è speciale e utilizza sempre la rappresentazione 'null'.

tipo UnverifiableAttribute

Questo attributo consente di contrassegnare valori il cui utilizzo comporterà la generazione di codice non verificabile. Questi valori vengono inevitabilmente contrassegnati come 'inline' per verificare che non siano presenti costrutti non verificabili nel codice effettivo per la libreria F#, ma vengano piuttosto copiati nel codice sorgente del chiamante.

tipo VolatileFieldAttribute

Se si aggiunge questo attributo a un'associazione F# modificabile, per tutti gli accessi al campo verrà utilizzato il prefisso "volatile".

Abbreviazioni dei tipi

Tipo

Descrizione

tipo array<'T>

Matrici unidimensionali, in base zero, scritte int[], string[] e così via.

tipo bigint

Integer arbitrariamente grandi. Abbreviazione per il tipo CLI BigInteger.

tipo bool

Abbreviazione per il tipo CLI Boolean.

tipo byte

Abbreviazione per il tipo CLI Byte.

tipo char

Abbreviazione per il tipo CLI Char.

tipo decimal

Abbreviazione per il tipo CLI Decimal.

tipo double

Abbreviazione per il tipo CLI Double.

tipo exn

Abbreviazione per il tipo CLI Exception.

tipo float

Abbreviazione per il tipo CLI Double.

tipo float32

Abbreviazione per il tipo CLI Single.

tipo Format<'Printer,'State,'Residue,'Result,'Tuple>

Tipo di un'espressione di formattazione.

tipo Format<'Printer,'State,'Residue,'Result>

Tipo di un'espressione di formattazione.

tipo int

Abbreviazione per il tipo CLI Int32.

tipo int16

Abbreviazione per il tipo CLI Int16.

tipo int32

Abbreviazione per il tipo CLI Int32.

tipo int64

Abbreviazione per il tipo CLI Int64.

tipo int8

Abbreviazione per il tipo CLI SByte.

tipo nativeint

Abbreviazione per il tipo CLI IntPtr.

tipo obj

Abbreviazione per il tipo CLI Object.

tipo option<'T>

Tipo di valori facoltativi. Se utilizzato da altri linguaggi CLI l'opzione vuota corrisponde al valore null.

tipo ref<'T>

Tipo di riferimenti modificabili. Utilizzare le funzioni [:=] e [!] per ottenere e impostare valori di questo tipo.

tipo sbyte

Abbreviazione per il tipo CLI SByte.

tipo single

Abbreviazione per il tipo CLI Single.

tipo string

Abbreviazione per il tipo CLI String.

tipo uint16

Abbreviazione per il tipo CLI UInt16.

tipo uint32

Abbreviazione per il tipo CLI UInt32.

tipo uint64

Abbreviazione per il tipo CLI UInt64.

tipo uint8

Abbreviazione per il tipo CLI Byte.

tipo unativeint

Abbreviazione per il tipo CLI UIntPtr.

tipo unit

Il tipo 'unit', che dispone di un solo valore "()". Si tratta di un valore speciale che utilizza sempre la rappresentazione 'Null'.

Eccezioni

Eccezione

Descrizione

eccezione MatchFailureException

Errori di corrispondenza non completa generano l'eccezione MatchFailureException

Vedere anche

Altre risorse

Riferimento alla libreria di base F#