OpCodes.Stelem_Ref Campo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Sostituisce l'elemento di matrice in corrispondenza di un indice specificato con il valore di un riferimento a un oggetto (di tipo O
) sullo stack di valutazione.
public: static initonly System::Reflection::Emit::OpCode Stelem_Ref;
public static readonly System.Reflection.Emit.OpCode Stelem_Ref;
staticval mutable Stelem_Ref : System.Reflection.Emit.OpCode
Public Shared ReadOnly Stelem_Ref As OpCode
Valore del campo
Commenti
La tabella seguente elenca il formato di assembly Esadecimale e MSIL (Microsoft Intermediate Language), insieme a un breve riepilogo dei riferimenti:
Formato | Formato assembly | Descrizione |
---|---|---|
A2 | stelem.ref | Sostituisce un elemento di matrice in corrispondenza dell'indice fornito con il ref valore (tipo O ) nello stack. |
Il comportamento di transizione dello stack, in ordine sequenziale, è:
Un riferimento all'oggetto a una matrice,
array
, viene inserito nello stack.Un indice valido in un elemento in
array
viene inserito nello stack.Viene eseguito il push di un valore nello stack.
Il valore, l'indice e il riferimento alla matrice vengono prelevati dallo stack; il valore viene inserito nell'elemento matrice in corrispondenza dell'indice specificato.
L'istruzione stelem.ref
sostituisce il valore dell'elemento in corrispondenza dell'indice fornito nella matrice array
unidimensionale con il ref
valore (tipo O
) inserito nello stack.
Le matrici sono oggetti e quindi rappresentati da un valore di tipo O
. L'indice è di tipo native int
.
Si noti che stelem.ref
esegue il cast implicito del valore fornito al tipo di elemento di array
prima di assegnare il valore all'elemento della matrice. Questo cast può avere esito negativo, anche per il codice verificato. L'istruzione stelem.ref
può quindi generare InvalidCastException. Per le matrici unidimensionali che non sono basate su zero e per le matrici multidimensionali, la Array classe fornisce un SetValue metodo.
NullReferenceException viene generata se array
è un riferimento Null.
IndexOutOfRangeException viene generata se index
è negativo o maggiore del limite di array
.
ArrayTypeMismatchException viene generata se array
non contiene elementi del tipo richiesto.
L'overload del metodo seguente Emit può usare il stelem.ref
codice operativo: