我想写个函数来实现交换两个string的参数。如下:
using System;namespace Test
{
class Program
{
public static void swap(string str1,string str2)
{
//如何实现交换str1,str2
/////////////////////////////
}
public static void Main(string[] args)
{
string str1="aaa",str2="bbb";
Program.swap(str1,str2);
Console.WriteLine("{0} {1}",str1,str2);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
假设有swap(string,string)方法,如何实现交换两个参数的内容?
即,如何在swap中来修改引用类型所指向的在堆中的数据?
对于string,应该是按引用传递,但是这里传递过来的应该是实参引用的拷贝,要想达到实参内容交换的目的,
必须要在swap中区修改引用的内容,请问下如何实现?PS:最近在C++和C#中来回切换,头有点晕了,请大家帮帮忙。
using System;namespace Test
{
class Program
{
public static void swap(string str1,string str2)
{
//如何实现交换str1,str2
/////////////////////////////
}
public static void Main(string[] args)
{
string str1="aaa",str2="bbb";
Program.swap(str1,str2);
Console.WriteLine("{0} {1}",str1,str2);
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
}
}
假设有swap(string,string)方法,如何实现交换两个参数的内容?
即,如何在swap中来修改引用类型所指向的在堆中的数据?
对于string,应该是按引用传递,但是这里传递过来的应该是实参引用的拷贝,要想达到实参内容交换的目的,
必须要在swap中区修改引用的内容,请问下如何实现?PS:最近在C++和C#中来回切换,头有点晕了,请大家帮帮忙。
{
string strTmp=str1;
str1=str2;
str2=strTmp;
}
string temp=string.empty;
Program.swap(ref str1, ref str2);