Cita de: Ikillnukes en 8 Diciembre 2013, 17:46 PMVale 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 obje
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 (vbnet) [Seleccionar]
Public Class Form1
Private myObject As Object = "Object 1"
Private ReadOnly Widths As New Dictionary(Of Object, Size) From
{
{myObject, New Size(500, 0)}
}
Private Sub Test() Handles MyBase.Shown
' Ejemplo de como iterar los elementos del diccionario
For Each key As KeyValuePair(Of Object, Size) In Widths
MsgBox(String.Format("Object:{0} Width:{1}", CStr(key.Key), CStr(key.Value.Width)))
Next
' Ejemplo de como acceder a un elemento específico:
MsgBox(Widths(myObject).Width)
MsgBox(Widths.First.Value.Width)
End Sub
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:
CitarCódigo (csharp) [Seleccionar]preset = new Item();
preset.name = "Apple";
preset.cost = 25;
preset.weight = 1;
Saludos!