日期:2014-05-17  浏览次数:20993 次

请教 类 相互调用 的 方式
C#里
 类文件相互调用都有哪些途径
 比如有 类1 和类2,里面分别有一些方法,大家都用哪些方式去相互调用?
 
 
 
 

------解决方案--------------------
调用和回调(委托)

调用:
class A
{
    public void foo() { new B().foo(); }
    public void bar() { }
}
class B
{
    public void foo() { new A().bar(); }
}
静态方法
class A
{
    static public void foo() { B.foo(); }
    static public void bar() { }
}
class B
{
    static public void foo() { A.bar(); }
}
回调形式1
class A
{
    public void foo() { new B().foo(this); }
    public void bar() { }
}
class B
{
    public void foo(A a) { a.bar(); }
}
回调形式2
class A
{
    public void foo() { new B().foo(this.bar); }
    public void bar() { }
}
class B
{
    public void foo(Action action) { action(); }
}
------解决方案--------------------
静态函数直接通过类名,非静态的要通过类的实例访问,可以传递实例对象,委托等等
------解决方案--------------------
实例化再调用、直接从类调用静态变量或成员,封装成dll再调用等等,以上是我能想到的乱七八糟的答案。呵呵
------解决方案--------------------
引用:
能再补充下 各自方式的优点,缺点就更好了


没有什么优缺点,根据需要来。

好比厨房和洗手间怎么比较优缺点?