Phương thức main () là một nhược điểm xấu cho lập trình thủ tục, cung cấp điểm vào trong ứng dụng. Nỗ lực được thực hiện bằng nhiều ngôn ngữ lập trình khác nhau để gói gọn nó, nhưng chính bản chất của nó làm cho điều này trở nên khó khăn (nó phải công khai và tĩnh, nhưng KHÔNG BAO GIỜ được gọi từ bất kỳ thứ gì khác trong chương trình, điều này rất mâu thuẫn). WPF đã thành công (bằng cách ẩn main () khỏi bạn trong phần sâu của dự án ứng dụng WPF và cung cấp các "hook" có thể định cấu hình để xử lý tùy chỉnh), cũng như Java (theo cách tương tự cho các ứng dụng Android), nhưng WinForms và hầu hết các loại khác các ứng dụng vẫn khiến bạn phải đối phó với hàm main ().
Vì vậy, hầu hết các chuyên gia nói rằng LỘC của hàm main () nên càng thấp càng tốt. Có một cách tiếp cận (mà tôi nghĩ là hơi quá mức) trong đó hàm main () có một dòng:
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()
}
}
Điều này hơi nhiều, nhưng tôi đồng ý với nguyên tắc cơ bản; main () nên càng ít càng tốt để đưa ứng dụng hướng sự kiện, hướng đối tượng của bạn vào trạng thái "sẵn sàng".