OpCodes.Add Field
Adds two values and pushes the result onto the evaluation stack.
Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
The following table lists the instruction's hexadecimal and Microsoft intermediate language (MSIL) assembly format, along with a brief reference summary:
|
Format |
Assembly Format |
Description |
|---|---|---|
|
58 |
add |
Adds two numeric values, returning a new numeric value. |
The stack transitional behavior, in sequential order, is:
-
value1 is pushed onto the stack.
-
value2 is pushed onto the stack.
-
value2 and value1 are popped from the stack; value1 is added to value2.
-
The result is pushed onto the stack.
Overflow is not detected for integer operations (for proper overflow handling, see Add_Ovf).
Integer addition wraps, rather than saturates. For example, assuming 8-bit integers where value1 is set to 255 and value2 is set to 1, the wrapped result is 0 rather than 256.
Floating-point overflow returns +inf (PositiveInfinity) or -inf (NegativeInfinity).
The acceptable operand types and their corresponding result data type are listed in the table below. If there is no entry for a particular type combination (for example, int32 and float; int32 and int64), it is an invalid Microsoft intermediate language (MSIL) and generates an error.
|
operand |
value1 type |
value2 type |
result type |
|---|---|---|---|
|
add |
int32 |
int32 |
int32 |
|
add |
int32 |
native int |
native int |
|
add |
int32 |
& |
& |
|
add |
int32 |
* |
* |
|
add |
int64 |
int64 |
int64 |
|
add |
native int |
int32 |
native int |
|
add |
native int |
native int |
native int |
|
add |
native int |
& |
& |
|
add |
native int |
* |
* |
|
add |
F |
F |
F |
|
add |
& |
int32 |
& |
|
add |
& |
native int |
& |
|
add |
* |
int32 |
* |
|
add |
* |
native int |
* |
The following Emit method overload can use the add opcode:
-
ILGenerator.Emit(OpCode)
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.