¿Cuándo se devuelve el valor de un parámetro C # 'out' o 'ref' al llamante?
Cuando hago una asignación a unout
oref
parámetro, es el valor asignado inmediatamente a la referencia proporcionada por la persona que llama, o son losout
yref
¿Valores de parámetro asignados a las referencias cuando el método vuelve? Si el método lanza una excepción, ¿se devuelven los valores?
Por ejemplo:
int callerOutValue = 1;
int callerRefValue = 1;
MyMethod(123456, out callerOutValue, ref callerRefValue);
bool MyMethod(int inValue, out int outValue, ref int refValue)
{
outValue = 2;
refValue = 2;
throw new ArgumentException();
// Is callerOutValue 1 or 2?
// Is callerRefValue 1 or 2?
}