TSL语言基础 > 高级语言(新一代) > WeakRef弱引用(新一代) > 弱引用

MakeWeakref    

简述
创建弱引用。功能同Weakref。
强引用obj返回对应的弱引用。
  
弱引用obj返回弱引用。
 
0/nil返回0/nil
  
不支持的类型抛出异常
定义
MakeWeakref(obj:Object|Function):weakobject;
参数
名称类型说明
ObjObject|Function对象或函数,并支持弱引用。
返回weakobject obj对应的弱引用。
  • 范例

    范例01:弱引用的创建与对被引用对象引用数的影响
    A:=New TA("A");
    B:=makeweakref(A);
    echo "B.FA--",B.FA;
      echo "Set A to nil";
      A:=nil;
      echo "A---End";
      return 1;
    Type TA=class
      public
      FA;
      Function Create(v);
      begin
       echo "Create--",v;
       FA:=v;
      end
      Function Destroy();
      begin
        echo FA,"-Destroy!";
      end
    end;

    打印:
    Create--A
    B.FA--A
    Set A to nil
    A-Destroy!
    A---End
    解析:B.FA返回”A”,说明B引用A指向的对象;当A设置为nil时,A对应的对象被成功释放,即B:=makeweakref(A);没有导致A指向的对象的引用数加1,B是一个弱引用。
相关