2013-02-06 32 views
7

Theo MSDN:thành viên lớp VB.NET công cộng theo mặc định

truy cập công cộng là mức bình thường đối với một yếu tố lập trình khi bạn không cần phải hạn chế truy cập vào nó. Lưu ý rằng cấp truy cập của phần tử được khai báo trong giao diện, mô-đun, lớp hoặc cấu trúc mặc định là Công khai nếu bạn không khai báo nó theo cách khác.

Vì vậy, nếu tôi tuyên bố một phương pháp lớp trong VB.NET mà không chỉ định một modifier truy cập, sau đó nó là công khai theo mặc định:

Sub DoSomething() 

End Sub 

Đây là điên rồ! Tôi muốn các thành viên được riêng tư theo mặc định và chỉ những người được đánh dấu cụ thể là Công khai mới hiển thị bên ngoài lớp học. Giống như trong C# ... Làm cách nào để sửa đổi hành vi này?

+6

tại sao là đánh máy 'tư nhân' để lựa chọn hợp lý? –

+13

Cá nhân tôi nghĩ rằng các công cụ sửa đổi truy cập ngầm là một ý tưởng tồi. Mã sẽ rõ ràng hơn nhiều đối với người đọc khác nếu bạn luôn bao gồm công cụ sửa đổi truy cập một cách rõ ràng. –

+0

@MitchWheat - triết lý lập trình mong muốn: mặc định ngôn ngữ phải là "bảo thủ"; không tốt cho một loại để phơi bày những thứ không có ý định tiếp xúc. BẮT BUỘC một lập trình viên để làm điều gì đó, rằng họ không cần phải làm, là một giải pháp phụ tối ưu. Đó là những gì chúng tôi có máy tính để: giúp mọi người dễ dàng hơn. Cấp, người ta có thể giải quyết điều này ở cấp IDE: có IDE tự động thêm "Private", trừ khi một modifier được chỉ định. – ToolmakerSteve

Trả lời

10

Điều này thật điên rồ! Tôi muốn các thành viên được đặt ở chế độ riêng tư theo mặc định

Như Fredrik đã nhận xét, bạn nên luôn cung cấp các công cụ sửa đổi truy cập rõ ràng.

Mã sẽ rõ ràng hơn cho người đọc khác nếu bạn luôn luôn bao gồm rõ ràng công cụ sửa đổi truy cập.

Tôi cho rằng điều này là do khả năng tương thích hoặc nhà phát triển không quen thuộc với các công cụ sửa đổi truy cập.

Nhưng bạn nói đúng, như trong C#, tôi khuyên bạn nên đặt mọi thứ ở chế độ riêng tư nhất có thể theo mặc định. Bạn có thể làm cho nó công khai hơn khi cần thiết.

Declaration Contexts and Default Access Levels (VB.NET)

Bất kỳ ý tưởng làm thế nào để thay đổi hành vi này?

Tôi không nghĩ rằng có thể chỉ định công cụ sửa đổi truy cập mặc định ở đâu đó trong Visual Studio. Bạn có thể thử để tạo ra một mẫu-class được gợi ý ở đây (không kiểm tra):

Visual C# 2010 Express: Specify default access modifier for new classes?

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