IsRef

Fonction

Syntaxe

Indique si un handle désigne encore quelque chose, pour pouvoir utiliser GetRef() et SetRef() sans risque.

IsRef(<handle>)

Les éléments

<handle>N’importe quelle valeur. En général une variable AS HANDLE.

Rend

TRUE si le handle est utilisable. FALSE après ReleaseRef(), après le DELETE de l’enregistrement qui contient la cible, pour une variable HANDLE jamais affectée, et pour toute valeur qui n’est pas un handle. N’arrête jamais le programme.

À savoir

  • Le résultat vaut TRUE ou FALSE, pas 1 ou 0. IF IsRef(h) = 1 est toujours faux. Écrivez IF IsRef(h), IF NOT IsRef(h) ou = TRUE. Str(IsRef(h)) affiche true ou false.
  • Les copies d’un handle partagent son état : après h2 = h et ReleaseRef(h), IsRef(h2) est faux aussi.
  • Un handle vers une entrée de table reste vrai après que DeleteMapElement() a supprimé cette entrée.

Exemple

hp AS integer = 100link AS HANDLEIF NOT IsRef(link) THEN Console("empty")   ' emptylink = @hpIF IsRef(link) THEN Console("linked")   ' linkedReleaseRef(link)IF NOT IsRef(link) THEN Console("released")   ' released
Dans le manuel : Fonctions