日期:2014-05-16  浏览次数:20863 次

C#类的方法互相调用问题,非静态方法要怎么实现?
A类实例化的对象是在main中完成的,但是B类要调用A类的话如何实现? 这个对象在main中B类访问不到啊
------解决方案--------------------
当然访问不到,因为main运行完了,这个局部变量都不存在了。

你有两个选择,一个是将这个对象定义为成员变量,延长它的生命周期。

class Program
{
static public A a;

static void Main()
{
    a = new A();
}
}
class B
{
    public void foo()
    {
    Program.a ...
    }
}


一个是,如果B也是在Main中被调用的,可以把这个变量传入。

static void Main()
{
    A a = new A();
    new B().foo(a);
}

class B
{
    public void foo(A a)
    {
    a ...
    }
}