out
当我对or参数进行赋值时ref
,是立即将值分配给调用者提供的引用,还是在方法返回时将out
andref
参数值分配给引用?如果方法抛出异常,是否返回值?
例如:
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?
}