ref
和
out
都是用来传递参数的引用,这意味着它们允许函数修改实参变量,并且这些修改会反映到调用函数的地方。但它们之间确实存在一些关键区别和使用场景:
作用:
ref
关键字时,传递给方法的参数必须在调用前已初始化。ref
传递的变量。特点:
MethodName(ref int variable)
。优缺点:
示例:
void IncreaseNumber(ref int num)
{
num += 10; // 直接修改传入的整数
}
int originalNum = 5;
IncreaseNumber(ref originalNum);
// 此时 originalNum 的值为 15
作用:
out
关键字时,传递的参数在调用函数之前不必初始化,但在函数内部必须赋值。特点:
优缺点:
示例:
bool TryParseInt(string input, out int result)
{
if (int.TryParse(input, out var parsedValue))
{
result = parsedValue; // 必须在这里或之前为result赋值
return true; // 表示解析成功
}
else
{
result = 0; // 尽管不使用这个值,但仍需赋值
return false; // 表示解析失败
}
}
string strInput = "123";
int parsedNumber;
if (TryParseInt(strInput, out parsedNumber))
{
// 此时 parsedNumber 的值为 123
}
总结起来,在Unity中,ref
主要用于传递可变参数并期望函数既能读又能写,而 out
则常用于从函数中返回单个或多个值,并且强调函数一定会提供一个有效的输出值。
python推荐学习汇总连接:
50个开发必备的Python经典脚本(1-10)
50个开发必备的Python经典脚本(41-50)
————————————————
?最后我们放松一下眼睛