Kiedy wartość parametru C # 'out' lub 'ref' jest rzeczywiście zwracana do wywołującego?
Kiedy przypiszę doout
lubref
parametr, to wartość natychmiast przypisana do odwołania podanego przez dzwoniącego lub jestout
iref
wartości parametrów przypisane do referencji, gdy metoda powraca? Jeśli metoda zgłasza wyjątek, czy zwracane są wartości?
Na przykład:
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?
}