如何管理 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');
由于caller
是Object
类型,编译器接受任何方法名,它使用duck typing。
如果调用者没有该方法,则会发生 运行 时间错误。
也就是说,您应该不更改标准Dialog
class。
您可以扩展 class,尽管这不太可能是正确的做法。
您应该做什么取决于您没有提供的信息。
正确安全的方法是:
MyCallerClass myCalss;
if (caller && classidget(caller) == classnum(MyCallerClass))
{
myClass = caller;
myClass.myParmMethod('abc');
}
参见 form.init 方法中的示例。
在 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');
由于caller
是Object
类型,编译器接受任何方法名,它使用duck typing。
如果调用者没有该方法,则会发生 运行 时间错误。
也就是说,您应该不更改标准Dialog
class。
您可以扩展 class,尽管这不太可能是正确的做法。
您应该做什么取决于您没有提供的信息。
正确安全的方法是:
MyCallerClass myCalss;
if (caller && classidget(caller) == classnum(MyCallerClass))
{
myClass = caller;
myClass.myParmMethod('abc');
}
参见 form.init 方法中的示例。