Как сопоставить типы данных с пользовательскими типами? - PullRequest
1 голос
/ 24 января 2012

Рассмотрим следующую функцию:

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

То, что я хочу, - это иметь различные типы данных, представленные пользовательскими именованными типами, которые по существу представляют исходные типы данных. Другими словами, я хотел бы проксировать типы данных и иметь допустимую функцию следующим образом:

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

так что PAR_Bar1 проксирует тип данных int, PAR_Bar2 будет проксировать тип данных uint, и так далее.

Причина, по которой мне это нужно, заключается в том, что я использую отладчик с графическим интерфейсом, который может запускать методы и позволяет изменять значения параметров функции в режиме реального времени, проблема в том, что отладчик не может сказать мне, какой параметр я меняется, он отображает только тип данных параметра. Поэтому, если мне нужно изменить все 10 различных параметров типа int, отладчики отображают все их как int, а не по их именам.

Я думаю, что если я использую прокси-типы, я могу легко различать параметры.

Итак, мой вопрос: Можно ли использовать прокси-типы данных? Я имею в виду сопоставление определенных типов данных с пользовательскими типами данных, которые будут представлять базовые типы данных?

РЕДАКТИРОВАТЬ: Я использую Monster Debugger , и это окно метода, вызываемого в режиме реального времени: enter image description here

Как видите, я получаю не имена параметров, а их тип (int).

Ответы [ 3 ]

0 голосов
/ 25 января 2012

Не совсем точно, для чего вы собираетесь использовать это, но рассматривали ли вы возможность использовать определение нетипизированной переменной?

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

Затем использовать это, чтобы получить класс переменных?

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

РЕДАКТИРОВАТЬ: Ах игнорировать этот, перечитайте ваш вопрос и понял, что это не поможет вам.

0 голосов
/ 29 января 2012

Кажется, что нет способов наложения типов.

0 голосов
/ 24 января 2012

Я бы порекомендовал вам изменить ваш отладчик, но так как это правильный вопрос ... Вы можете создать класс как любую константу:

const PAR_Bar1:Class = uint;

Будем надеяться, что ваш отладчик идентифицирует этот класс, а не его мать.

...