C#中交换x,y的值

来源:百度知道 编辑:UC知道 时间:2024/06/01 04:14:10
using System;
class Test
{
static void Swap(int x,int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(i,j);
Console.WriteLine("i={0},j={1}",i,j);
}
}

想实现交换x,y的值,可是上面的程序实现不了,为什么?如果我想实现,该怎么改?我是新手,刚学一个星期,麻烦尽可能说的通俗易懂些,谢谢!

这个问题是您忽略了变量的生存期了。。。这是面向对象编程,首先您的使用方式就不对。不过就您的方法您应该使用ref,和out。
using System;
class Test
{
static void Swap(ref int x,ref int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(ref i, ref j);
Console.WriteLine("i={0},j={1}",i,j);
}
}
希望您能成功~!

int 的类型是值引用的,所以你要用引类型ref或out如下:
using System;
class Test
{
static void Swap(ref int x,ref int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(ref i,ref j);
Console.WriteLine("i={0},j={1}",i,j);
}
}

using System;
class Test
{
void Swap(int x,int y){
int temp=x;
x=y;
y=temp;
}
static void Main(){
int i=1,j=2;
Swap(i,j);
Console.WriteLine("i={0},j={1}",i,j);
}
}

using System;
class Test
{
void Swap(int