发现一个关于委托的问题,还请大侠解释一下..
class Program
{
static void Main(string[] args)
{
Student s = new Student(1, "hihi");
s.Add();
Console.ReadKey();
}
}
public delegate void Show(string name);
public class Student
{
private int _age;
private string _name;
public string Name
{
get { return this._name; }
}
public int Age
{
get { return this._age; }
}
public Student(int age, string name)
{
this._age = age;
this._name = name;
}
public void Change(Show s, string name)
{
if (s != null)
{
s(name);
}
}
public void Add()
{
Change(delegate(string name)
{
Console.WriteLine(name);
Console.WriteLine(_name);
Console.WriteLine(Name);
}, new Student(22, "张三").Name);
}
}
结果显示:
张三
hihi
hihi
为什么会是这样?为什么不是:
张三
张三
张三
注:我穷人,没分!还请多担待!