2010-06-24 36 views
39

New mẫu giao diện điều khiển dự án tạo ra một phương pháp chính như thế này:Tại sao phương pháp chính là riêng tư?

class Program 
{ 
    static void Main(string[] args) 
    { 
    } 
}

Tại sao nó rằng không phải các Main phương pháp cũng không phải lớp Program cần phải được công khai?

+5

@ jacerhea: No. 'class Program' là nội bộ,' Main() 'là riêng tư. –

+1

"Mẫu dự án bảng điều khiển mới" có phải là tham chiếu đến Visual Studio không? Nếu vậy, sẽ thích hợp hơn khi thêm thẻ 'visual-studio'. – DavidRR

+1

@DavidRR Có, đó là một tham chiếu đến VS, nhưng nó không liên quan đến câu hỏi mặc dù. –

Trả lời

42

Điểm vào của chương trình được đánh dấu bằng chỉ thị .entrypoint IL. Nó không quan trọng nếu phương pháp hoặc lớp học là công khai hay không, tất cả những gì quan trọng là chỉ thị này.

+10

Điều đó cũng có nghĩa là bạn thậm chí không phải gọi phương thức chính "Main". Trình biên dịch C# thực thi điều đó, nhưng các ngôn ngữ khác .net có thể sử dụng bất cứ thứ gì họ muốn. –

17

Phương thức Main không cần phải được bất kỳ ai gọi.

Nó thực sự được đánh dấu là điểm vào để thực thi trong bản thân EXE, và do đó không có người gọi bên ngoài theo mặc định.

Nếu bạn MUỐN, bạn có thể mở nó để được gọi bằng cách đánh dấu public, ví dụ: nếu bạn đang chuyển ứng dụng bảng điều khiển sang API.

+1

Ngay cả khi chức năng của chương trình điều khiển có thể được gọi trực tiếp bởi các hội đồng khác, thường là một ý tưởng tồi để mở 'Main'. Đó là thiết kế tốt hơn để lộ mặt tiền công cộng mà các chương trình bên ngoài có thể gọi. 'Main' xử lý các đối số dòng lệnh và sau đó gọi vào cùng một Mặt tiền. –

+1

@Anders: Điểm công bằng, nhưng chúng tôi chỉ nói về tính khả thi, không phải thiết kế. –

0

Từ khóa công khai hoặc riêng tư không tạo sự khác biệt trong trường hợp này, nó hoàn toàn phụ thuộc vào cách sử dụng và phạm vi của ứng dụng. Sử dụng các từ khóa được đề cập dưới đây trong các trường hợp khác nhau ..

1) Public-Nếu chúng tôi muốn bắt đầu điểm vào bởi bất kỳ chương trình bên ngoài nào, bạn có thể cần đặt nó ở chế độ công khai để có thể truy cập. 2) Riêng tư - Nếu chúng tôi biết không có việc sử dụng bên ngoài cho ứng dụng thì tốt hơn là đặt nó ở chế độ riêng tư để không có ứng dụng bên ngoài nào truy cập nó.

Các vấn đề liên quan