Xojo: Mejoras de Enumeración

A continuación encontrarás, traducida al castellano, el artículo que ha sido publicada originalmente en el blog de Xojo en inglés y escrito por Greg O’Lone. Puedes encontrar el artículo original aquí.

Xojo 2021r2 incorpora un par de mejoras a la hora de trabajar con las enumeraciones en Xojo. El editor de enumeraciones muestra ahora una previsualización del valor de forma que resulta mucho más claro.

(Ejemplo de Enumeración mostrando valores por defecto)

Además, hemos añadido una nueva opción “Binario” que te permite crear automáticamente grupos que no sean mutuamente excluyentes. Esto es, los valores de los elementos son automáticamente potencias de dos y pueden aplicarse operaciones binarias sobre ellos:

(Ejemplo de Enumeración Binaria con valores por defecto.)

Esta nueva característica tiene como requerimiento que debe de situarse dentro de un Módulo porque se generan en tu proyecto como una Clase. El motivo para ello es que dichas clases incorporan automáticamente algunos métodos de ayuda para que resulte más fácil trabajar con los datos binarios.

Un Constructor que toma un entero:

Var x as New MyEnum(3) // MyEnum.George, MyEnum.John

Conversión automática de y desde un entero:

Var x as Integer = MyEnum.Ringo // x = 4

Operaciones binarias And, Or y Xor:

Var x as MyEnum = MyEnum.Paul Or MyEnum.Mary // x contiene el valor 40

Operaciones de igualdad, de modo que puedas comparar el valor interno de una instancia con otra:

Var x as MyEnum = MyEnum.Paul
Var y as MyEnum = MyEnum.Ringo
If x = y Then

El método de ayuda Contains:

If x.Contains(MyEnum.Peter) Then

Una propiedad Value de sólo lectura, de modo que puedas ver el valor interno en el depurador.

Tal y como ocurre con las Enumeraciones normales, el editor también te permite indicar de forma específica el valor de un elemento:

Así, en vez de tener que escribir:

Var x as MyEnum = MyEnum.George Or MyEnum.John Or MyEnum.Ringo Or MyEnum.Paul

Sólo has de escribir:

Var x as MyEnum = MyEnum.TheBeatles

¡Confiamos que disfrutes de esta característica tanto como nosotros!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *