最后错了,不是b1.b1(),是b1.fb()

解决方案 »

  1.   

    class a
    {
    public static fa()
    {
    }
    class b
    {
    public fb()
    {
    //想在这里调用fa(),如何调用
    }
    }

    class b1=new b();
    b1.b1();
    }
      

  2.   

    还有问题,应该是
    class a
    {
    public static void fa()
    {
    }
    class b
    {
    public void fb()
    {
    //想在这里调用fa(),如何调用
    }
    }

    class b1=new b();
    b1.fb();
    }
      

  3.   

    但是为什么要把class b放在class a里面呢?这样的做法不太好
      

  4.   

    class a
    {
    public static void fa()
    {
    }
    class b
    {
    public void fb()
    {
                                a.fa();
    //想在这里调用fa(),如何调用
    }
    }

    class b1=new b();
    b1.fb();
    }
      

  5.   

    class a
    {
    public static void fa()
    {
    }
    class b
    {
    public void fb()
    {
                                a.fa();
    //想在这里调用fa(),如何调用
    }
    }

    class b1=new b();
    b1.fb();
    }
    但是这样实现看起来就不怎么规范
      

  6.   

    怎么不用继承呢?
    class a
    {
             public static void fa()
    {
    }}
    class b:a
    {
    public void fb()
    {
    //想在这里调用fa(),如何调用
                            //调用父类的方法
    }
    }

    class b1=new b();
    b1.fb();
      

  7.   

    using System;namespace ConsoleApplication1
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: 在此处添加代码以启动应用程序
    //
    class2 b = new class2();
    System.Console.WriteLine(b.b());
    Console.ReadLine();
    }
    static string a(){
    return "invoke function a";
    }
    class class2{
    public string b(){
    return Class1.a();
    }
    }
    }
    }
      

  8.   

    用static能够实现,可是有些时候不能用static。
    例如多线程的话,不能用static,而要各自使用自己的(使用到了各自的数据)。
    我想了一种方法
    如下:
    class a
    {
    public void fa()
    {
    }
    class b
    {
    public a a1;
    public void fb()
    {
    //想在这里调用fa(),如何调用
    }
    }

    class b1=new b();
    b1.a1=this;
    b1.fb();
    }
    即在b中引用a的实例,不知道这样好不好,还有其他方法吗?
      

  9.   

    在C#中的内部类比较特殊
    它和包含它的外部类是没有关系的,并没有提供方法直接访问外部类的实例方法(java中可以)
    只能在构造内部类的时候把外部类的实例当作构造参数传入内部类(就象楼上的方法)
    然后内部类可以访问外部类的一切成员,包括private的成员
    没有别的方法了
      

  10.   

    一样的方法,就是a.fa(),看下面:class a
    {
    public static void fa()
    {
    }
    class b
    {
    public void fb()
    {
    a.fa();
    }
    }

    class b1=new b();
    b1.fb();
    }