C#中按结构和封装传递参数的问题,谢谢!
using System;
namespace ConsoleApplication9
{
class Class1
{
/*
static private int x,y,z;
static void Main(string[] args)
{
x=10;
y=20;
z=30;
Console.WriteLine(x+" "+y+" "+z);
changeVal(x,y,z);
Console.WriteLine(x+" "+y+" "+z);
}
参数在传递时是用的值传递。string是按引用吧?
static public void changeVal(int t1,int t2,int t3)
{
t1+=1;
t2+=1;
t3+=1;
Console.WriteLine("The function of changeVal: "+t1+" "+t2+" "+t3);
}
*/
/*
public struct values
{
public int x,y,z;
}
static void Main(string[] args)
{
values val=new values();
val.x=10;
val.y=20;
val.z=30;
Console.WriteLine(val.x+" "+val.y+" "+val.z);
changeVal(val);
Console.WriteLine(val.x+" "+val.y+" "+val.z);
}
//在传递结构的时候为什么不使用引用?我记得默认传递结构是按引用阿?
public static void changeVal(values t1)
{
t1.x+=1;
t1.y+=1;
t1.z+=1;
Console.WriteLine("The function of changeVal: "+t1.x+" "+t1.y+" "+t1.z);
}
*/
private static int t;
static void Main(string[] args)
{
t=11;
Console.WriteLine(t);
object temp=(object)t;
Console.WriteLine(t);
changeVal(temp);
Console.WriteLine(t);
}
//通过转换为object进行封箱来传递参数。这样为什么不是按引用传递?
public static void changeVal(object t1)
{
int k=(int)t1;
k+=1;
Console.WriteLine(k);
}
}
}
//某些地方是不是我理解错了?请指点。谢谢!:)