Condividi tramite


OpCodes.Stelem_Ref Campo

Definizione

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, è:

  1. Un riferimento all'oggetto a una matrice, array, viene inserito nello stack.

  2. Un indice valido in un elemento in array viene inserito nello stack.

  3. Viene eseguito il push di un valore nello stack.

  4. 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:

Si applica a