请问这段C#代码为什么运行时n1和n2的值无法交换?并且在方法中的n2=temp这一行提示n2是无法访问的代码。感谢
internal class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
Test(n1, n2);
Console.WriteLine(n1);
Console.WriteLine(n2);
Console.ReadKey();
}
public static int Test (int n1, int n2)
{
int temp = n1;
n1 = n2;
return n1;
n2 = temp;
return n2;
}
}
当你return n1后,该函数已经结束了,这时候你在这个函数中是没法继续对n2进行操作的
class Program
{
static void Main(string[] args)
{
int n1 = 10;
int n2 = 20;
Test(ref n1,ref n2);//
Console.WriteLine(n1);
Console.WriteLine(n2);
Console.ReadKey();
}
public static void Test (ref int n1, ref int n2)//
{
int temp = n1;
n1 = n2;
//return n1;
n2 = temp;
//return n2;
}
}