一个非静态类如何调用另一个非静态类的方法?

黑暗之物

我有2个非静态类。我需要访问一个类的方法以返回要处理的对象。但是由于这两个类都是非静态的,所以我不能仅以静态方式调用该方法。我也不能以非静态方式调用该方法,因为程序不知道该对象的标识符。

在可能的情况下,如果可能的话,我希望两个对象都保持非静态。否则,将需要对其余代码进行大量重组。

这是代码中的示例

class Foo
{
    Bar b1 = new Bar();

    public object MethodToCall(){ /*Method body here*/ }
}

Class Bar
{
    public Bar() { /*Constructor here*/ }

    public void MethodCaller()
    {
        //How can i call MethodToCall() from here?
    }
}
谢尔盖·卡里尼琴科(Sergey Kalinichenko)

为了使静态或非静态类中的任何代码都可以调用非静态方法,调用者必须具有对其进行调用的对象的引用。

在你的情况,BarMethodCaller必须有一个参考Foo您可以通过的构造函数Bar或您喜欢的任何其他方式传递它

class Foo
{
    Bar b1 = new Bar(this);

    public object MethodToCall(){ /*Method body here*/ }
}

Class Bar
{
    private readonly Foo foo;

    public Bar(Foo foo) {
        // Save a reference to Foo so that we could use it later
        this.foo = foo;
    }

    public void MethodCaller()
    {
        // Now that we have a reference to Foo, we can use it to make a call
        foo.MethodToCall();
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从另一个类非静态地调用一个类和方法

来自分类Dev

从另一个类非静态地调用一个类和方法

来自分类Dev

静态引用另一个类中的非静态方法

来自分类Dev

从另一个Java类调用静态方法

来自分类Dev

从另一个非静态方法中调用非静态方法

来自分类Dev

从另一个非静态方法中调用非静态方法

来自分类Dev

PHP:获取调用另一个静态类的静态方法的类名

来自分类Dev

PHP:是否可以从另一个静态类调用静态类方法?

来自分类Dev

无效使用非静态成员函数-类成员函数调用另一个类成员函数

来自分类Dev

从另一个类调用静态数组

来自分类Dev

另一个类中的静态方法

来自分类Dev

另一个类中的静态方法

来自分类Dev

如何创建一个非静态内部Activity类?

来自分类Dev

如何在不创建新类实例的情况下从另一个类调用我的非静态函数?-反应本机路由器流量

来自分类Dev

如何从另一个类的静态方法更改静态变量的值

来自分类Dev

如何从另一个类的静态方法更改静态变量的值

来自分类Dev

为什么不从另一个类中调用一个类的静态方法“ main”?

来自分类Dev

使用radiobutton.Check in另一个类(带有静态/非静态内容的问题)

来自分类Dev

冲突的 Laravel 控制器 - 一个可以调用方法,另一个给出非静态错误

来自分类Dev

在另一个类库中调用静态方法

来自分类Dev

为什么我不能在另一个类中调用静态方法?

来自分类Dev

如何使用或调用在另一个类中声明的静态变量

来自分类Dev

从另一个班级获得非静态副词

来自分类Dev

如何在.net中的另一个程序集中的私有静态类型(或类)上调用方法?

来自分类Dev

在一个类中混合使用静态和非静态方法是否可以接受?

来自分类Dev

从另一个类访问静态变量

来自分类Dev

从另一个类访问静态变量

来自分类Dev

从另一个类更新静态变量

来自分类Dev

如何动态访问另一个类的静态属性和静态常量

Related 相关文章

  1. 1

    从另一个类非静态地调用一个类和方法

  2. 2

    从另一个类非静态地调用一个类和方法

  3. 3

    静态引用另一个类中的非静态方法

  4. 4

    从另一个Java类调用静态方法

  5. 5

    从另一个非静态方法中调用非静态方法

  6. 6

    从另一个非静态方法中调用非静态方法

  7. 7

    PHP:获取调用另一个静态类的静态方法的类名

  8. 8

    PHP:是否可以从另一个静态类调用静态类方法?

  9. 9

    无效使用非静态成员函数-类成员函数调用另一个类成员函数

  10. 10

    从另一个类调用静态数组

  11. 11

    另一个类中的静态方法

  12. 12

    另一个类中的静态方法

  13. 13

    如何创建一个非静态内部Activity类?

  14. 14

    如何在不创建新类实例的情况下从另一个类调用我的非静态函数?-反应本机路由器流量

  15. 15

    如何从另一个类的静态方法更改静态变量的值

  16. 16

    如何从另一个类的静态方法更改静态变量的值

  17. 17

    为什么不从另一个类中调用一个类的静态方法“ main”?

  18. 18

    使用radiobutton.Check in另一个类(带有静态/非静态内容的问题)

  19. 19

    冲突的 Laravel 控制器 - 一个可以调用方法,另一个给出非静态错误

  20. 20

    在另一个类库中调用静态方法

  21. 21

    为什么我不能在另一个类中调用静态方法?

  22. 22

    如何使用或调用在另一个类中声明的静态变量

  23. 23

    从另一个班级获得非静态副词

  24. 24

    如何在.net中的另一个程序集中的私有静态类型(或类)上调用方法?

  25. 25

    在一个类中混合使用静态和非静态方法是否可以接受?

  26. 26

    从另一个类访问静态变量

  27. 27

    从另一个类访问静态变量

  28. 28

    从另一个类更新静态变量

  29. 29

    如何动态访问另一个类的静态属性和静态常量

热门标签

归档