2010-02-14 22 views
6

Các đại biểu có thể là tư nhân không? Nếu không, lý do đằng sau điều này khác với những hạn chế bình thường gây ra bởi nó là tư nhân là gì?Phạm vi của một đại biểu trong C#

+1

Ngôn ngữ nào bạn đang sử dụng? –

+0

C#, đã chỉnh sửa tiêu đề. Cảm ơn. – SoftwareGeek

Trả lời

14

Các đại biểu có cùng hạn chế như bất kỳ loại nào liên quan đến khả năng hiển thị. Vì vậy, bạn không thể có đại biểu riêng ở cấp cao nhất.

namespace Test 
{ 
    private delegate void Impossible(); 
} 

này tạo ra một lỗi biên dịch:

Elements defined in a namespace cannot be explicitly declared as private, protected, or protected internal

Nhưng giống như một lớp học, bạn có thể khai báo một tin đại biểu khi nó cư trú trong phạm vi một lớp.

namespace Test 
{ 
    class Sample 
    { 
     // This works just fine. 
     private delegate void MyMethod(); 

     // ... 
    } 
} 

Lý do cơ bản đi trở lại định nghĩa của what private is in C#:

private | Access is limited to the containing type.

+0

+1: đánh bại tôi và câu trả lời hoàn chỉnh hơn! –

+0

đẹp, cảm ơn bobbymcr. đôi khi, chúng tôi cần tăng cường các khái niệm/khái niệm cơ bản. – SoftwareGeek

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