【问题标题】:Passing a value to a class from another class after event事件发生后将值从另一个类传递给一个类
【发布时间】:2014-02-05 10:56:23
【问题描述】:

我有 2 个不是彼此的父母/孩子的窗口,并且每个窗口都做了一次。我们将它们命名为 ClassA 和 ClassB。我在 ClassA 中增加了一个事件单击按钮。我要做的就是在单击该按钮后从 Class B 传递变量,然后使用该变量执行 ClassA 函数之一。

【问题讨论】:

  • 你已经尝试过什么?
  • 我尝试通过在 classA 中创建 classB 的实例来传递价值,并且我设法传递了该变量。但是问题没有解决,因为我不能把那个变量放在那里,因为在第一次调用方法时它必须有一定的值,我想在一段时间后改变它并让方法运行。

标签: c# events argument-passing


【解决方案1】:

通过拥有 ClassB 的实例,无需额外事件即可完成。除非它是静态类,否则您显然需要该实例。您可以传递实例,例如,在构造函数中或使用属性。

public ClassA
{
    private ClassB classBInstance;

    public ClassA(ClassB classBInstance)
    {
        this.classBInstance = classBInstance;
    }

    void buttonClick(...)
    {
        classBInstance.SomeFunction(someVariable);
    }
}

public ClassB
{
    void SomeFunction(paramater)
    {
        mySecretVariable = parameter;
        CallAnotherMethodThatUsesThisVariable();
    }
}

【讨论】:

  • 我想你误解了我的概念。我正在尝试将变量从 A 类转换为 B 类。我正在单击 A 类中的某些内容,然后单击我想在 B 类中提升方法。
  • @user3274820 啊,我改一下。
  • 您将需要在 ClassA 中创建一个事件,在 ClassB 中持有对 ClassA 的引用,并将 ClassB 中的一个方法附加到从 ClassA 触发的事件中 - 首先搜索有关创建事件的介绍
  • @user3274820 我更新了我的答案。你能像我建议的那样做吗?您可以将 ClassB 的实例获取到 ClassA 并直接调用带有参数的方法吗?如果没有,我会建议使用事件的解决方案。
  • 该函数不能将其用作参数。它在中间使用该变量,但我不能将其作为变量传递。该点击必须更新我的变量,然后执行 make 方法。
猜你喜欢
  • 2018-02-05
  • 2014-02-24
  • 2011-08-26
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多