O método main () é um retrocesso feio para a programação procedural, fornecendo o ponto de entrada no aplicativo. São feitas tentativas em várias linguagens de programação para encapsulá-lo, mas sua própria natureza torna isso difícil (deve ser público e estático, mas NUNCA deve ser chamado de qualquer outra coisa no programa, o que é altamente contraditório). O WPF obteve êxito (ocultando main () de você nas entranhas do projeto de aplicativo WPF e fornecendo "ganchos" configuráveis para processamento personalizado), assim como o Java (da mesma forma para aplicativos Android), mas o WinForms e a maioria dos outros tipos de os aplicativos ainda fazem você lidar com main ().
Portanto, a maioria dos especialistas diz que o LOC da função main () deve ser o mais baixo possível. Existe uma abordagem (que eu acho que é um pouco exagerada) na qual a função main () tem uma linha:
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()
}
}
Isso é um pouco demais, mas eu concordo com o princípio básico; main () deve o mínimo possível para colocar seu aplicativo orientado a objetos e orientado a eventos em um estado "pronto".