Il metodo main () è un ritorno n ugly alla programmazione procedurale, fornendo il punto di ingresso nell'applicazione. I tentativi sono fatti in vari linguaggi di programmazione per incapsularlo, ma la sua stessa natura lo rende difficile (deve essere pubblico e statico, ma non dovrebbe MAI essere chiamato da qualcos'altro nel programma, che è altamente contraddittorio). WPF è riuscito (nascondendo main () da te nelle profondità del progetto applicativo WPF e fornendo "hook" configurabili per l'elaborazione personalizzata), così come Java (in modo simile per le app Android), ma WinForms e molti altri tipi di le app ti fanno ancora gestire main ().
Quindi, la maggior parte degli esperti afferma che il LOC della funzione main () dovrebbe essere il più basso possibile. C'è un approccio (che penso sia leggermente eccessivo) in cui la funzione main () ha una riga:
public class Program
{
private Program(string[] args)
{
//parse args and perform basic program setup
}
//Reduce the ugliness to the absolute minimum
public static void main(string[] args)
{
new Program(args).Run();
}
private void Run()
{
//kick off the driving O-O code for the app; i.e. Application.Run()
}
}
Questo è un po 'troppo, ma sono d'accordo con il principio di base; main () dovrebbe fare il meno possibile per portare la tua applicazione orientata agli oggetti e guidata dagli eventi in uno stato "pronto".