新宋吧 关注:367,898贴子:28,681,295
  • 13回复贴,共1

万宋,C#如何调用类外的方法

只看楼主收藏回复

例如这样
class B
{
void dosth
{}
}
class A
{
   B b
void do
   {}
}
b是B类的实例,是A的一个成员。现在希望在b.dosth()中,调用其外部的A.do(),可否做到?如何做到?


IP属地:云南1楼2009-04-16 18:44回复
    轻顶一下看有人理睬没。


    IP属地:云南2楼2009-04-16 18:57
    回复
      编译可以过不?


      IP属地:江苏3楼2009-04-16 19:03
      回复
        ……你这是不是传说中的循环调用了~


        IP属地:山东4楼2009-04-16 19:05
        回复
          c#的实现机制不了解,无法帮助楼主.要是不想了解为什么,编个程序跑一下就知道了.


          IP属地:江苏5楼2009-04-16 19:07
          回复
            貌似是死循环。。。
            -


            IP属地:浙江6楼2009-04-16 20:49
            回复
              你写个DO干啥?我也没学过C#
              一般情况有可能是b.dosth()


              IP属地:四川7楼2009-04-16 20:51
              回复
                晕.没看完LZ得话...


                IP属地:四川8楼2009-04-16 20:52
                回复
                  • 220.163.85.*
                  当然可以的啦
                  在doSome()中实例化一个A不就可以了。
                  或者将A中的do()作为类方法(也就是所谓的静态方法)。


                  9楼2009-04-16 21:00
                  回复
                    • 119.131.219.*
                    class A;     // 先声名
                    class B
                    {
                    void dosth(A *a)     // 只能用指针或引用模式
                    {a->do();}
                    }
                    class A
                    {
                    B b
                    void do
                    {}
                    }


                    10楼2009-04-16 21:23
                    回复
                      ls的,这个事c#?


                      IP属地:江苏11楼2009-04-16 21:33
                      回复
                        • 119.131.219.*
                        我只会C++


                        12楼2009-04-16 21:42
                        回复
                          c++的好说,用得多,看的多.关键是c#的机制不太了解,不知道静态方法是存在哪个位置,还有调用的时候,调入内存的顺序怎么样.


                          IP属地:江苏13楼2009-04-16 21:55
                          回复
                            我已经搞定了。
                            用的方法是在A中订阅B中的事件,B中则在dosth()内触发这个事件。


                            IP属地:云南14楼2009-04-17 11:10
                            回复