有个问题想问一下
C#方法中参数的传递默认是值传递,但遇到下面个问题有点不解
class WrapTest
{
public int num = 1; } class Program
{
public static void Test1(WrapTest t)
{
t.num = 222;
} public static void Test2(WrapTest t)
{
WrapTest test = new WrapTest();
test.num = 333;
t = test;
}
static void Main(string[] args)
{
WrapTest t1 = new WrapTest();
t1.num = 111;
Test1(t1);
Test2(t1);
Console.WriteLine(t1);
}
}Test1(t1)后t1.num变为222了
Test2(t1)后t1.num还是222了
而t1是一个WrapTest实例的引用变量,那么Test2执行完后t1应该指向Test2中生成的对象,也即t1.num应该为333啊
不知道上述的理解哪里出问题了,请各位大侠指教,谢谢!
C#方法中参数的传递默认是值传递,但遇到下面个问题有点不解
class WrapTest
{
public int num = 1; } class Program
{
public static void Test1(WrapTest t)
{
t.num = 222;
} public static void Test2(WrapTest t)
{
WrapTest test = new WrapTest();
test.num = 333;
t = test;
}
static void Main(string[] args)
{
WrapTest t1 = new WrapTest();
t1.num = 111;
Test1(t1);
Test2(t1);
Console.WriteLine(t1);
}
}Test1(t1)后t1.num变为222了
Test2(t1)后t1.num还是222了
而t1是一个WrapTest实例的引用变量,那么Test2执行完后t1应该指向Test2中生成的对象,也即t1.num应该为333啊
不知道上述的理解哪里出问题了,请各位大侠指教,谢谢!
解决方案 »
- C# Byte数组添加数据
- 想学习下C#中的开发智能设备程序,请问有前辈们哪里有好的书和教程吗?
- Radiobutton的问题????????
- 怎样将WinForm中的FolderBrowserDialog控件的弹出对话框作为一个控件放在Form中使用,而不是以弹出对话框的方式?
- activex 下载后安装后不能正常使用,急!
- 查了好久也解决不了,更新数据库问题
- 谁能帮我看下和修改程序
- 请教,在asp.net中怎么释放word对象
- WINFORM的TEXTBOX绑定后,为何不能将更改后的数据自动写入DATATABLE中?
- c# listview 导入txt 加序号
- 在线求教~~~~~~~
- WinForm中的數據操作
public static void Test2(ref WrapTest t) //
{
WrapTest test = new WrapTest();
test.num = 333;
t = test;
}