Ho costruito un'Enum! c'è un modo di ricavare automaticamente il numero degli elementi presenti nell'Enum???
Ho costruito un'Enum! c'è un modo di ricavare automaticamente il numero degli elementi presenti nell'Enum???
Fondamentalmente mi serve per eseguire una funzione tante volte per quanti sono gli elementi presenti nell'Enum!
Avevo pensato ad un ciclo for, tipo:
for i as Int16 = 1 to ????
....
end for
oppure
for each i as Int16 in ????
...
end for
grazie!!!
Il primo metodo che intendi usare non è sicuro: infatti non è necessario che gli elementi di un enum siano consecutivi (potrebbe esserci il primo che vale 68, il secondo 14, e così via). La soluzione è questa (supponendo che l'enum si chiami "testenum"):
codice:For Each te As testenum In [Enum].GetValues(GetType(testenum)) Console.WriteLine(te) 'o quello che vuoi fare con il valore Next
Amaro C++, il gusto pieno dell'undefined behavior.
in effetti, non ero certo di questo di quel problema, ecco per cui avevo pensato alla seconda col For Each!!! Però non riuscivo a svilupparlo!!!
Grazie , lo provo subitissimo!
per chi dovesse compilare una lista contenente gli oggetti indicati nell'Enum:
codice:For Each i As Integer In [Enum].GetValues(GetType(testenum)) lista.Items.AddRange(New Object() {TestoTesteNum(i)}) Next ... Friend Shared Function TestoTesteNum(ByVal item As testenum) Select Case item Case Scouting_Notes.ElementoInteresse.Insufficiente Return "Insufficiente" Case Scouting_Notes.ElementoInteresse.Sufficiente Return "Sufficiente" Case Scouting_Notes.ElementoInteresse.Discreto Return "Discreto" Case Scouting_Notes.ElementoInteresse.Buono Return "Buono" Case Scouting_Notes.ElementoInteresse.Ottimo Return "Ottimo" Case Scouting_Notes.ElementoInteresse.PrimaSquadra Return "Prima Squadra" Case Else Return Nothing End Select End Function![]()
Guarda che non è necessaria quella funzione... basta la [Enum].GetNames().
Amaro C++, il gusto pieno dell'undefined behavior.
cioè parli della funzione (Qui chiamata) TestoTesteNum???
Le enum sono dei nomi, mentre il risultato della funzione è per inserire un testo!!
Un domani potrei cambiare i testi associati ad ogni enum!!!!
Usando [Enum].GetValues(GetType(nome_tipo_enum)) ottieni un array di stringhe che rappresentano i nomi (gli stessi usati nel codice) dei vari valori dell'enum; per questo dicevo che TestoTesteNum (almeno in questo caso) risulta inutile.
![]()
Amaro C++, il gusto pieno dell'undefined behavior.
hai fatto benissimo a segnlarmi la cosa, adesso la so!
Cmq, quello che ho postato, era una semplificazione (ad esempio) per come usare il tutto!
![]()