2012-01-24 1 views
1

Tenir compte de la fonction suivante:Comment mapper des types de données à des types personnalisés?

public function foo(bar1:int, bar2:uint, bar3:String, bar4:Boolean):void{} 

Ce que je veux est d'avoir les différents types de données représentées par des types personnalisés nommés qui sont essentiellement les types représenteront de données d'origine. En d'autres termes, je voudrais pouvoir les types de données et ont une fonction valide comme suit:

public function foo(bar1:PAR_Bar1, bar2:PAR_Bar2, bar3:PAR_Bar3, bar4:PAR_Bar4):void{} 

donc PAR_Bar1 serait proxy du type de données int, PAR_Bar2 serait proxy le type de données uint, ainsi de suite et ainsi de suite. La raison pour laquelle j'ai besoin de ceci est parce que j'utilise un débogueur avec une interface graphique qui peut exécuter des méthodes et permet de changer les valeurs des paramètres de fonction en temps réel, le problème est que le débogueur ne peut pas me dire quel paramètre En changeant, il affiche uniquement le type de données d'un paramètre. Donc, si j'ai besoin de changer 10 paramètres différents tous de type int, les débogueurs les affichent tous en int et non par leur nom.

Je pense que si j'utilise des types de proxy, je peux facilement différencier les paramètres.

Donc, ma question: Est-il possible d'utiliser des types de données proxy? Je veux dire des types de données spécifiques à des types de données personnalisés qui représenteraient les types de données de base?

EDIT: J'utilise le Monster Debugger et c'est la fenêtre d'une méthode appelée en temps réel: enter image description here

Comme vous pouvez le voir, je ne reçois pas les noms des paramètres, mais leur type (int).

+0

Cela ressemble à un débogueur assez terrible, qu'est-ce que vous utilisez? – grapefrukt

+0

J'ai mis à jour la publication pour plus de détails sur le débogueur. – IneedHelp

Répondre

0

Il semble qu'il n'y ait pas de façons de créer des alias.

0

Je recommande que vous avez changé votre débogueur mais étant donné que cela est une bonne question ... Vous pouvez créer une classe comme une constante:

const PAR_Bar1:Class = uint; 

Espérons que votre débogueur identifiera cette classe et non son mère.

+0

Merci pour la réponse! J'ai essayé ce que vous m'avez dit, et si je crée la constante en dehors de la classe principale, j'obtiens cette erreur: "5006: Un fichier ActionScript ne peut pas avoir plus d'une définition externe visible" et si je le déclare dans la classe principale, obtenir cette erreur: "1046: Type n'a pas été trouvé ou n'était pas une constante à la compilation: PAR_Bar1." – IneedHelp

0

Vous ne savez pas exactement à quoi vous allez vous servir, mais avez-vous envisagé d'utiliser une définition de variable non typée?

public function foo(bar1:*, bar2:*, bar3:*, bar4:*):void{} 

Puis en utilisant ceci pour obtenir la classe des variables?

var PAR_Bar1:Class = Object(bar1).constructor; 

EDIT: Ah ignore celui-ci, relisez votre question et réalisé que cela ne vous aidera pas.

+0

Oui, je pense que ce que je veux (types d'alias) n'est même pas possible. – IneedHelp

Questions connexes