nelson.lang.invalidHandle
Creer un handle invalide avec une classe handle donnee.
📝Syntaxe
h = nelson.lang.invalidHandle(classname)
h = nelson.lang.invalidHandle(classname, n)
h = nelson.lang.invalidHandle(classname, m, n, ...)
h = nelson.lang.invalidHandle(classname, sz)
📥Arguments d'entrée
Paramètre Description
classname nom d'une classe handle sous forme de vecteur de caracteres ou de string scalaire.
n, m, sz dimensions entieres positives ou nulles du tableau de handles retourne.
📤Arguments de sortie
Paramètre Description
h un scalaire ou tableau de handles invalides dont la classe est classname.
📄Description

nelson.lang.invalidHandle cree une valeur handle qui possede la classe demandee mais qui n'est pas valide.

isvalid(h) retourne faux pour chaque element du resultat.

Le nom de classe doit identifier une classe classdef handle. Les classes valeur et les noms de classe inconnus provoquent une erreur.

Sans argument de dimension, le resultat est scalaire. Avec une dimension scalaire numerique n, le resultat est n-par-n. Avec plusieurs dimensions scalaires ou un vecteur numerique sz, le resultat a ces dimensions.

Cette fonction est utile pour les API qui doivent conserver la classe d'une cible handle absente.

La valeur retournee se comporte comme un tableau de handles pour la classe, la taille, la concatenation avec des tableaux de handles compatibles, et isvalid. Aucun objet vivant n'est associe a cette valeur.

Les handles invalides ne deviennent pas valides ensuite. Pour obtenir un handle vivant, construire un nouvel objet de la meme classe.

Toutes les dimensions doivent etre des entiers positifs ou nuls. Un vecteur de dimensions vide cree un tableau de handles vide.

Une dimension scalaire unique suit la meme convention que les constructeurs de tableaux courants: nelson.lang.invalidHandle(classname, 3) retourne un tableau 3-par-3.

La classe est chargee avant la creation du tableau de handles. Les classes handle definies par l'utilisateur et presentes sur le path peuvent donc etre utilisees par nom.

Utiliser nelson.lang.HandlePlaceholder quand aucune classe handle plus specifique n'est disponible.

💡Exemples
Creer un handle placeholder invalide.
h = nelson.lang.invalidHandle('nelson.lang.HandlePlaceholder');
class(h)
isvalid(h)
Creer un tableau de handles invalides.
h = nelson.lang.invalidHandle('nelson.lang.HandlePlaceholder', 2, 3);
size(h)
isvalid(h)
Creer un tableau de handles invalides depuis un vecteur de taille.
h = nelson.lang.invalidHandle("nelson.lang.HandlePlaceholder", [1 4]);
size(h)
class(h)
isvalid(h)
Utiliser une classe handle definie par l'utilisateur.
d = [tempdir(), 'nelson_help_invalid_handle/'];
mkdir(d);
filewrite([d, '/NelsonHelpInvalidHandleTarget.m'], ["classdef NelsonHelpInvalidHandleTarget < handle"; "end"]);
addpath(d);
h = nelson.lang.invalidHandle('NelsonHelpInvalidHandleTarget');
class(h)
isvalid(h)
Refuser un nom de classe valeur.
try
  nelson.lang.invalidHandle('double');
catch exception
  disp(exception.message)
end
🔗Voir aussi
nelson.lang.WeakReferencenelson.lang.HandlePlaceholderisvalidclass
🕔Historique des versions
Version Description
2.0.0 version initiale
Modifier cette page sur GitHub