鉴于:
- 具有 %Integer 属性“intA”的类“A”
- 具有 classMethod foo(ByRef num As %integer) 的类“B”,它获取参数 byRef 并进行一些计算。
并且知道在缓存对象脚本中:
- 如果你想通过 ref 传递参数,你需要放一个点 '.' 在 ref 传递的变量名之前。
- 在一个类中,如果你想引用你自己的属性,你需要在属性名称前加上 2 个点 '..'
如果我想通过引用传递属性“intA”,我应该如何调用 classMethod foo?因为在属性名称前面加上 3 个点似乎不是正确的方法。
代码片段 B 类:
Class B Extends %RegisteredObject
{
///doubles num
ClassMethod foo(ByRef num As %Integer)
{
set num = num*2
}
}
代码片段 A 类:
Class A Extends %RegisteredObject
{
Property intA As %Integer;
Method test()
{
set ..intA= 5
do ##class(B).foo(..intA)
//If correctly passed by ref, ..intA should be 10, but it is still 5
}
}
提前致谢。