Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    [vb.net] Ricavare automaticamente il numero di elementi di un Enum

    Ho costruito un'Enum! c'è un modo di ricavare automaticamente il numero degli elementi presenti nell'Enum???

  2. #2
    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!!!

  3. #3
    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.

  4. #4
    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!

  5. #5
    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

  6. #6
    Guarda che non è necessaria quella funzione... basta la [Enum].GetNames().
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7

  8. #8
    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!!!!

  9. #9
    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.

  10. #10
    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!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.