引用参数和输出参数的2个区别(以前偶只知道第一个)
1、引用参数(ref)在可以作为引用参数在函数成员调用中传递之前,必须已明确赋值,而输出参数(out)在可以作为输出参数在函数成员调用中传递之前不一定要明确赋值,在该函数成员正常返回前都必须已明确赋值。
2、在函数内部,引用参数(ref)被视为初始已赋值,输出参数(out)被视为初始未赋值。
举例:
private void setage(ref int _oldage,out int _newage)
{
_newage = 2; //out必须赋值
}
public void main()
{
int oldage = 0; //ref必须提前赋值
int newage =1; //out提前赋值在函数中无效
setage(ref oldage,out newage);
}
2、在函数内部,引用参数(ref)被视为初始已赋值,输出参数(out)被视为初始未赋值。
举例:
private void setage(ref int _oldage,out int _newage)
{
_newage = 2; //out必须赋值
}
public void main()
{
int oldage = 0; //ref必须提前赋值
int newage =1; //out提前赋值在函数中无效
setage(ref oldage,out newage);
}