再次理解按值和按引用传递类型
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
public class Person
{
public string fullname;
public int age;
public Person(string n, int a)
{
fullname = n;
age = a;
}
public Person() { }
public void PrintInfo()
{
Console.WriteLine(fullname + age);
}
}
public static void SendAPersonByValue(Person p)
{
p.age=99;
p=new Person("wikii",99);
p.PrintInfo();
}
static void Main(string[] args)
{
Person Fred = new Person("fred", 12);
Fred.PrintInfo();
SendAPersonByValue(Fred);
Fred.PrintInfo();
Console.Read();
}
}
}输出的结果,以前我注意过,不过现在又忘了,结果自己的结果出了问题,这个是个很简单的问题,如果用
结果是不同的。
区别:按值传递类型复制了指向调用者对象的引用,SendAPersonByValue()方法与调用者指向同一个对象,所以可以改变对象状态数据,但是无法指向一个新的对象,和常量指针类似。
理解了还是挺简单的ref这个关键字也在许多地方多用用。


浙公网安备 33010602011771号