OpCodes.Stelem_Ref Campo

Definizione

Sostituisce l'elemento della matrice in corrispondenza di un determinato indice con il valore di riferimento dell'oggetto (tipo O) nello 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 MSIL (Intermediate Language) esadecimale e Microsoft istruzione, insieme a un breve riepilogo di riferimento:

Formato Formato assembly Description
A2 stelem.ref Sostituisce un elemento matrice in corrispondenza dell'indice fornito con il ref valore (tipo O) nello stack.

Il comportamento transitorio dello stack, in ordine sequenziale, è:

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

  2. Viene eseguito il push di un indice valido per un elemento in array 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 della 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 prima di array assegnare il valore all'elemento della matrice. Questo cast può avere esito negativo, anche per il codice verificato. Pertanto, l'istruzione stelem.ref può 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