elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Casos prácticos en los que se puede usar una Enumeración
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Casos prácticos en los que se puede usar una Enumeración  (Leído 6,898 veces)
z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Casos prácticos en los que se puede usar una Enumeración
« en: 8 Diciembre 2013, 17:46 pm »

Hola buenas, pues me gustaría saber sobre las enumeraciones, y como en MSDN viene todo tan técnicamente expresado, pues me cuesta entender los ejemplos..

Así que he aquí mi pregunta...

Vale la pena usar una enumeración, por ejemplo en el Width de X (14) objectos?? O mas bien, es mejor usar X (14) declaraciones de tipos int??

Un saludo.



Es que veréis, me gustaría hacer un sistema de propiedades para mi juego, en donde se puede resizar (cambiar de tamaño) los elementos de la GUI, y claro, no se que sería más fácil hacer, un array con 14 indexes, una enumeración con 14 elementos, o declarar 14 elementos...


« Última modificación: 8 Diciembre 2013, 17:47 pm por Ikillnukes » En línea


Interesados hablad por Discord.
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #1 en: 8 Diciembre 2013, 20:20 pm »

Seguro que 14 declaraciones no (Siempre que tengas otro meto para hacer lo mismo), podes usar estructuras o enumeraciones,, dependiendo el caso, lo que creas que va a resultar mas facil de utilizar (implementar) y si realmente te conviene.. me da la impresion que te conviene una estructura en el caso de un Width (Igual no entiendo que son esos 14 objetos??) Tendrias que detallar mejor..

Con respecto a la MSDN, que te interesa saber? Es bastante clara.. te pone (por ejemplo) una API, te dice que parametros son opcionales y cuales obligatorios, te da una descripcion, en que libreria se encuentra y en algunos casos ejemplos..

EDITO: Ahora que releo el titulo del post, (Casos practicos...) una enumeracion es conveniente para agrupar tipos de datos relacionados,, por ejemplo, colores (el tipico ejemplo que se suele dar), pero pueden ser muchas cosas mas que quisieras "Enumerar", dias, meses, años, dispositivos.. cualquier cosa enumerable!!

Saludos!!


« Última modificación: 8 Diciembre 2013, 20:25 pm por Vaagish » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #2 en: 8 Diciembre 2013, 20:31 pm »

(Igual no entiendo que son esos 14 objetos??)

Son todo ints... Por eso digo, que a lo mejor me conviene más una enumeración.

También conozco una estructura, pero pa qué? Si todas las variables son del tipo int.
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #3 en: 8 Diciembre 2013, 20:37 pm »

Vale la pena usar una enumeración, por ejemplo en el Width de X (14) objectos?? O mas bien, es mejor usar X (14) declaraciones de tipos int??

Típica pregunta inentendible como de costumbre Ikillnukes, pero viniendo de ti te perdono xD

¿Si no entiendo mal quieres decir que tienes 14 objectos y quieres guardar el valor de "ancho" de cada objeto en algún lugar para acceder a ellos fácilmente?

Por como pintas el problema no creo que una Enum sea lo que necesitas, puesto que para empezar no se puede crear dinámicamente una Enum en tiempo de ejecución (al menos eso dice MSDN), y los elementos de una Enum tampoco se pueden modificar en tiempo de ejecución, ademas los valores de "widths" me imagino que serán numéricos (otro motivo para no pdoer usar una Enum).

Un Array es algo complétamente diferente a una Enum, no tiene ni pies ni cabeza comparar uno con lo otro, Enumeraciones es para X cosas y un Array para otras, una Enum es util si se sabe usar y puedes hacer con ella cosas interesantes como utilizar el attributo Flags y combinarlos (si resultase necesario), pero como ya digo, dudo que sea el caso de que una Enum te sirva...

Yo te recomiendo el uso de un Dictionary o cualquier otro Type como una Tuple; un Array 2D también te sirve pero pff teniendo esto no hace falta, te muestro un ejemplo en VB.NET:

Código
  1. Public Class Form1
  2.  
  3.    Private myObject As Object = "Object 1"
  4.  
  5.    Private ReadOnly Widths As New Dictionary(Of Object, Size) From
  6.    {
  7.        {myObject, New Size(500, 0)}
  8.    }
  9.  
  10.    Private Sub Test() Handles MyBase.Shown
  11.  
  12.        ' Ejemplo de como iterar los elementos del diccionario
  13.        For Each key As KeyValuePair(Of Object, Size) In Widths
  14.            MsgBox(String.Format("Object:{0} Width:{1}", CStr(key.Key), CStr(key.Value.Width)))
  15.        Next
  16.  
  17.        ' Ejemplo de como acceder a un elemento específico:
  18.        MsgBox(Widths(myObject).Width)
  19.        MsgBox(Widths.First.Value.Width)
  20.  
  21.    End Sub
  22.  
  23. End Class

EDITO: Si además del "Width" petendes especificar más cosas te recomiendo que crees tu Type propio y le añadas los miembros que quieras, como en el ejemplo del link que me has mostrado:

Citar
Código
  1. preset = new Item();
  2. preset.name = "Apple";
  3. preset.cost = 25;
  4. preset.weight = 1;

Saludos!
« Última modificación: 8 Diciembre 2013, 21:01 pm por EleKtro H@cker » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #4 en: 8 Diciembre 2013, 20:42 pm »

Vaya, y como de costumbre, siempre te sueles enterar "a duras penas" de lo que pregunto. xD

Pero vaya, me has aclarado la duda... Y sí, no es mala idea el diccionario, es más mira en lo que lo tenia pensado usar:

http://answers.unity3d.com/questions/155003/item-database.html

Un saludo.
En línea


Interesados hablad por Discord.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #5 en: 9 Diciembre 2013, 00:54 am »

Probaste con la propiedades anchor de los controles?
Y si el usuario quiere sus propias medidas?

Pone un par de paneles con splitter y yá

Hardcodear no siempre es bueno...
En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #6 en: 9 Diciembre 2013, 01:07 am »

No son controles...

Son texturas representados con Rects :P
En línea


Interesados hablad por Discord.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #7 en: 9 Diciembre 2013, 02:06 am »

Son texturas representados con Rects :P

Primero dices que necesitas especificar un tamaño, pero ahora dejas ver que también necesitas especificar unas coordenadas (Por el uso de la estructura Rect).

En ese caso puedes usar la estructura Rectangle para especificar ambos:
Código
  1. Dim myTexture As New Rectangle(New Point(X, Y), New Size(W, H))

Saludos
« Última modificación: 9 Diciembre 2013, 02:50 am por EleKtro H@cker » En línea

z3nth10n


Desconectado Desconectado

Mensajes: 1.583


"Jack of all trades, master of none." - Zenthion


Ver Perfil WWW
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #8 en: 9 Diciembre 2013, 11:09 am »

No a ver, Unity tiene sus propias maneras:

Código
  1. GUI.DrawTexture(new Rect(top, left, width, height), (Texture2D)Resources.Load("carpeta/archivo"));

Si no mal recuerdo, pero el top y el left son fijos.... Bueno ahora que lo pienso los que esten a la izquierda van a tener que casmbiar el left (hacerse mas chico) para poder contrarrestar el cambio de tamaño (resize), pero bueno, para eso ya haré alguna función... :P
En línea


Interesados hablad por Discord.
Vaagish


Desconectado Desconectado

Mensajes: 875



Ver Perfil
Re: Casos prácticos en los que se puede usar una Enumeración
« Respuesta #9 en: 9 Diciembre 2013, 17:29 pm »

Citar
ademas los valores de "widths" me imagino que serán numéricos (otro motivo para no pdoer usar una Enum).

Te referís a que solo se pueden usar enteros y no decimales,, no?

@Ikillnukes: No estarás planeando hacer un juego serio en .NET, no?  :rolleyes:
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con enumeracion de filas « 1 2 »
PHP
mokoMonster 14 5,970 Último mensaje 14 Febrero 2010, 11:53 am
por Ari Slash
como usar set y get ejercicios practicos
Java
Rijhording 7 24,771 Último mensaje 22 Abril 2010, 06:42 am
por Chuidiang
Paper Cross Site Scripting, Conceptos básicos y casos prácticos
Nivel Web
k0rde 3 2,846 Último mensaje 13 Marzo 2012, 15:26 pm
por k0rde
jQuery De cero a avanzado mediante ejercicios prácticos
Desarrollo Web
r32 1 2,808 Último mensaje 7 Noviembre 2020, 12:48 pm
por Kyrie Eleison
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines