Show/Hide Toolbars

XSharp

 

参数 'arg' 不得使用前缀 '@' 传递

 

不得将带有 @ 前缀的参数传递给不期望有 REF 或 OUT 参数的方法或函数。

 

这种情况可能发生在以下代码中

FUNCTION Start() AS VOID
LOCAL n AS INT
n := 123
test(@n)
? n
 
PROCEDURE test(u AS USUAL)
? u
u := 345

如果您真的想将 USUAL 的地址传递给 TEST 函数,那么您必须先将该地址赋值给一个局部变量:

FUNCTION Start() AS VOID
LOCAL n AS INT
LOCAL p as PTR
n := 123
p := @n   // 将地址分配给 ptr 类型的局部变量
test(p) // 传递指针
? n
 
PROCEDURE test(u AS USUAL)
? u
u := 345