日期:2014-05-18  浏览次数:20710 次

有没有办法判断一个类的实例何时被调用了?
有没有办法判断一个类的实例何时被调用了?
例如:

public   class   Person
{
        public   void   SayHiTo(Person   p)
        {
                foo();
        }
       
        public   void   ReplyTo()
        {
                bar();
        }
}

比如上面此段代码:
首先实例化两个对象:
Person   PA   =   new   Person();
Person   PB   =   new   Person();
然后执行:
PA.SayHiTo(PB);

在这个时候PB能够自动执行ReplyTo()方法?


------解决方案--------------------
定义个委托
然后在
public void SayHiTo(Person p)
{
foo();
}
里触发事件,试一下?
------解决方案--------------------
public class Person
{
public void SayHiTo(Person p)
{
foo();
p.ReplyTo();
}

public void ReplyTo()
{
bar();
}
}

------解决方案--------------------
1、在楼上兄弟提及到的,使用 delegate
2、直接写一个方法,放到ctor. 中
------解决方案--------------------
public class Person
{
public string Name;
public Person(string s)
{
this.Name = s;
}
public void SayHiTo(Person p)
{
Console.WriteLine(this.Name + "首先向 " + p.Name + "说话 ");
p.ReplyTo(Name);

}

public void ReplyTo(string replayToPerson)
{
Console.WriteLine( "I am replay to : " + replayToPerson);
}
}
调用:
Person pa= new Person( "张三 ");
Person pb = new Person( "李四 ");
pa.SayHiTo(pb);
------解决方案--------------------
这种场景最好使用Delegate