有没有办法判断一个类的实例何时被调用了?
例如: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()方法?

解决方案 »

  1.   

    定义个委托
    然后在
        public void SayHiTo(Person p)
        {
            foo();
        }
    里触发事件,试一下?
      

  2.   

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

  3.   

    1、在楼上兄弟提及到的,使用 delegate
    2、直接写一个方法,放到ctor. 中
      

  4.   

    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);
      

  5.   

    先谢谢楼上几位。计数器,不能准确地知道实例何时被使用了。可能我没说清楚,我主要是想知道.NET自身有没有这样的机制,当调用一个实例的时候,实例可以自己响应,而不需要像楼上几位代码那样,需要自己在类中自己写方法实现?