Sono stato sviluppato per Windows Mobile e Android per qualche tempo. E sono confuso riguardo questi due concetti.Enum VS Classe statica (normale e con valori di stringa)
Diciamo che voglio prendere una decisione in base ad alcune dimensioni dello schermo del dispositivo dell'utente. Quindi mi aspetterò valori così predefiniti. Potrei usare un'istruzione switch per gestire la mia logica. Ma non sono sicuro se dovrei usare Enum di una classe statica per questo scopo. Quale è un approccio migliore. Posso fare la mia logica in questi due modi diversi. Qual è l'approccio corretto? Non ho capito bene. E posso anche usare i valori di stringa? Perché al momento sto seguendo le lezioni, ho bisogno di aggiornare per usare tutte le enumerazioni. Quindi, come posso cambiare la mia classe in String Enum? Comunque. Grazie.
Utilizzando Enum
//My predefined values
public enum ScreenSizeEnum
{
Small, Medium, Large, XLarge,
}
//Handling Logic
private void SetScreenSize(ScreenSizeEnum Screen)
{
switch (Screen)
{
case ScreenSizeEnum.Large:
//Do Logic
break;
case ScreenSizeEnum.Small:
//Do Logic
break;
}
}
Utilizzando Classe
//My predefined values
public class ScreenSizeClass
{
public const int Small = 0;
public const int Medium = 1;
public const int Large = 2;
public const int XLarge = 3;
}
//Handling Logic
private void SetScreenSize(int Screen)
{
switch (Screen)
{
case ScreenSizeClass.Large:
//Do Logic
break;
case ScreenSizeClass.Small:
//Do Logic
break;
}
}
L'esperienza di debug con enumerazione è molto migliore (almeno in C#). Prova a eseguire il debug di uno switch con un centinaio di casi che attiva un codice 'int'. –
C'è un tag 'Java' su questa domanda. Il codice di esempio che mostri per il tuo 'enum' non funzionerà con Java. Enums in Java non funzionano allo stesso modo di C# quando si usa 'switch'. – Squonk
Sì. Lo so. Sto facendo esattamente lo stesso flusso anche nella mia applicazione Android. Ho pensato che potrebbe essere troppo lungo se inserisco anche il codice java. Ma spero che il concetto sia lo stesso. –