黑马程序员技术交流社区
标题:
ref问题求解
[打印本页]
作者:
weiwei10153
时间:
2014-2-26 22:31
标题:
ref问题求解
本帖最后由 weiwei10153 于 2014-2-27 19:13 编辑
求高手指导一下 ,代码在下面
本人最近刚学基础知识
第一个我知道输出18,但第二个为什么输出20?
ref不就是修饰的是引用类型吗?为什么加了ref输出结果不一致?
class Program
{
static void Main(string[] args)
{
Person p1 = new Person() { Age = 18 };
Test1(p1);
Console.WriteLine(p1.Age); //18
Test2(ref p1);
Console.WriteLine(p1.Age); //20 这个为什么是20 ?
Console.ReadKey();
}
static void Test1(Person p)
{
p = new Person() { Age = 20 };
}
static void Test2(ref Person p)
{
p = new Person() { Age = 20 };
}
}
class Person
{
public int Age { get; set; }
}
明白了,多谢!
1.png
(133.44 KB, 下载次数: 13)
下载附件
2014-2-26 22:22 上传
作者:
回忆~坚
时间:
2014-2-27 18:23
ref传过去的是p1的地址,而非p1的值,所以经过Test2();之后也是在改p1这个地址里的值,所以p1的值也相应的变成了后面Test2();赋予的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2