不理解为什么c#的int.tryparse(string s,out int n)方法第二个参数一定要使用out类型

2024-12-21 00:33:57
推荐回答(3个)
回答1:

ref是传递参数的地址,是为了把方法外的值传入到方法内使用。
out是返回值,是为了方法内的值传到方法外使用。
所以使用ref前必须对变量赋值,out不用。

如果这里使用ref,那你就要保证参数n已经被赋值。
显然,这是不行的。

回答2:

如果函数有多个返回值,就用out和ref。
ref需要先赋值,out不用。
区别在:
private void AAA(ref int i,out int o)
{
//out参数的值传进来被清空。
//此时 i = 2, o = 0
i++;
o++;
}
int i = 2;
int o = 2;
AAA(ref i,out o);
// i = 3
// o = 1;

回答3:

ref方法内可以修改值,out不可以