代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_C#

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

发布时间:2019-08-18浏览(1057)

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

    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