Se por exemplo definirmos um domínio enumerado do tipo Status, com os valores Aberto e Fechado, como apresentado abaixo, somente poderemos manipular valores, para os atributos e variáveis definidas nesse tipo, de acordo com esse conjunto.
Isso significa o seguinte, se a variável &status abaixo, definida do tipo Status, somente aceita atribuições do tipo:
&status = Status.Aberto
Que, claro, é exatamente o objetivo desse recurso, melhorar a sintaxe e definir conteúdos limitados, e previamente definidos.
Ok, mas o que acontece quando precisamos designar para &status valores a partir de outros tipos, numeric, character, ...
Isso não será possível (pelo menos da forma habitual).
Portanto, para se obter o valor convertido para texto, nada mais simples que um ToString().
A recuperação do valor foi o desafio aqui, pois como faríamos, pois a variável não aceitaria valores numéricos convertidos como na expressão abaixo.
A saída é uma operação, meio escondida na documentação chamada Convert, que pode ser realizada da seguinte forma:
&status = Status.Convert(&websession.Get("STATUS").ToNumeric())
'Desbloqueando' Domínios Enumerados
O termo 'desbloqueando' é meio forte para definir esse assunto, mas achei que se adequava muito bem a esse contexto. A situação que me ocorreu foi a necessidade de guardar o valor desta variável &status na sessão, e claro, nesse local somente temos a possibilidade de armazenar textos.
&websession.set("STATUS", &Status.ToString())
Portanto, para se obter o valor convertido para texto, nada mais simples que um ToString().
A recuperação do valor foi o desafio aqui, pois como faríamos, pois a variável não aceitaria valores numéricos convertidos como na expressão abaixo.
A saída é uma operação, meio escondida na documentação chamada Convert, que pode ser realizada da seguinte forma:
&status = Status.Convert(&websession.Get("STATUS").ToNumeric())
Meio estranho, mas funciona, o resultado será a conversão do valor numérico pelo valor respectivo no conjunto.
Um comentário:
boa dica !
Postar um comentário