Ho una classe che memorizza i dati nell'applicazione asp.net C# che non cambia mai. Non voglio davvero mettere questi dati nel database - mi piacerebbe che restasse nell'applicazione. Ecco il mio modo di memorizzare i dati nell'applicazione:Qual è il modo migliore per archiviare dati statici in C# che non cambierà mai
public class PostVoteTypeFunctions
{
private List<PostVoteType> postVotes = new List<PostVoteType>();
public PostVoteTypeFunctions()
{
PostVoteType upvote = new PostVoteType();
upvote.ID = 0;
upvote.Name = "UpVote";
upvote.PointValue = PostVotePointValue.UpVote;
postVotes.Add(upvote);
PostVoteType downvote = new PostVoteType();
downvote.ID = 1;
downvote.Name = "DownVote";
downvote.PointValue = PostVotePointValue.DownVote;
postVotes.Add(downvote);
PostVoteType selectanswer = new PostVoteType();
selectanswer.ID = 2;
selectanswer.Name = "SelectAnswer";
selectanswer.PointValue = PostVotePointValue.SelectAnswer;
postVotes.Add(selectanswer);
PostVoteType favorite = new PostVoteType();
favorite.ID = 3;
favorite.Name = "Favorite";
favorite.PointValue = PostVotePointValue.Favorite;
postVotes.Add(favorite);
PostVoteType offensive = new PostVoteType();
offensive.ID = 4;
offensive.Name = "Offensive";
offensive.PointValue = PostVotePointValue.Offensive;
postVotes.Add(offensive);
PostVoteType spam = new PostVoteType();
spam.ID = 0;
spam.Name = "Spam";
spam.PointValue = PostVotePointValue.Spam;
postVotes.Add(spam);
}
}
Quando viene chiamato il costruttore, viene eseguito il codice sopra. Ho alcune funzioni che possono interrogare anche i dati sopra. Ma è questo il modo migliore per archiviare informazioni in asp.net? se no cosa consiglieresti?
Sospetto che una semplice istruzione switch/case possa, in media, fornire prestazioni leggermente migliori e sarebbe più leggibile rispetto all'uso di operatori ternari concatenati. –
Questo può funzionare anche meglio se si definisce un'enumerazione privata nidificata all'interno della definizione struct e si sostituisce il campo int con esso. In alternativa, definire un gruppo di costanti int all'interno della struttura in modo che i costruttori di numeri magici, ifs e casi di switch siano più leggibili. –
@ Cameron, sul tuo suggerimento sull'uso degli switch. Non so sulle prestazioni (in genere, affronterò solo le prestazioni quando c'è un problema, ma per quanto riguarda la manutenibilità, leggibilità, estensibilità, ecc., I ternerys sono più concisi e sono quindi PIÙ leggibile, oltre che più estendibile (meno da modificare/duplicare) .Questo argomento è indirizzato in modo profuso in altri post su questo forum. –