class Program
{
static void Main(string[] args)
{
int[] b = { 1, 2, 3, 4, 5, 6 }; //数组b是引用类型变量
string s = "987654"; //s也是引用类型变量
cstr(s, b);
Console.WriteLine(s); //为何b改变了,而s没有改变
foreach (int b0 in b)
{
Console.Write(b0);
}
Console.WriteLine();
cstr(ref s);
Console.WriteLine(s); //s原本就是引用类型变量为什么非要用ref引用后才能改变,而s改变了与string类型变量不变是不是自相矛盾?
Console.ReadKey();
}
static void cstr(string s,params int[] b)
{
s = "123456";
for(int i=0;i<b.Length;i++)
{
b[i] = i ;
}
}
static void cstr(ref string s)
{
s = "123456";
}
}
s原本就是引用类型变量为什么非要用ref引用后才能改变,而s改变了与string类型变量不变是不是自相矛盾? |