如何管理 methods\variables 来电者 class?

How to manage methods\variables caller class?

在 class 标准 class Dialog 中存在一个 Object 声明(在 class声明)

Object caller;

在这个 class 中,我可以得到来电者 class 的名字。例如:

if (caller.name() == classStr(MyCallerClass) )
{
     // manage-pass variable in caller class
}

如果我在 IF 中捕获,我想将 parm 方法中的参数传递给 MyCallerClass.

如何传递一个简单的参数?例如:

if (caller.name() == classStr(MyCallerClass) )
{
     // MyCallerClass.myParmMethod(parameter);
}

谢谢。

只需调用方法:

if (caller.name() == classStr(MyCallerClass))
    caller.myParmMethod('abc');

由于callerObject 类型,编译器接受任何方法名,它使用duck typing。 如果调用者没有该方法,则会发生 运行 时间错误。

也就是说,您应该更改标准Dialog class。 您可以扩展 class,尽管这不太可能是正确的做法。

应该做什么取决于您没有提供的信息。

正确安全的方法是:

   MyCallerClass myCalss;

   if (caller && classidget(caller) == classnum(MyCallerClass))
   {
      myClass = caller;
      myClass.myParmMethod('abc');
   }

参见 form.init 方法中的示例。