2009-12-17 42 views
7

Trong các dự án Windows Forms, tại sao nhà thiết kế mặc định sử dụng thuộc tính Friend WithEvents trong VB.NET và private trong C#?'Friend WithEvent' trong Visual Basic so với 'private' trong C#

Ví dụ, trong một tập tin form.designer.:

cs

private Label Label1; 

.vb

Friend WithEvents Label1 as Label; 

Đối WithEvents, nó là nhiều hơn hoặc ít rõ ràng (đối với sử dụng Handles, rõ ràng) . Nhưng tại sao Bạn bè trong Visual Basic và riêng tư trong C#?

Trả lời

7

Friend WithEvents được sử dụng để tương thích với mã Visual Basic cũ hơn, nơi thông thường kiểm soát được sử dụng bên ngoài biểu mẫu có chứa nó.
Khác biệt, trong C# không có sự cần thiết đó.

private là giải pháp tốt hơn, cho mã mới.

0

Có lẽ Visual Basic đang cố gắng thân thiện với người lập trình mới và cho phép họ xem tất cả các điều khiển Friend trong biểu mẫu từ bất kỳ đâu trong dự án của họ?

bè là nội bộ, điều duy nhất tôi có thể nghĩ đến, một tôi không chắc chắn lý do tại sao giá trị mặc định sẽ là khác nhau nào khác ngoài việc hỗ trợ các lập trình viên mới ...

+2

Tôi tin rằng các lập trình viên mới nên suy nghĩ OOP và tìm hiểu khái niệm Box (Đen) của nó. – serhio

+0

OOP dễ dàng thuyết giảng, nhưng ngay cả với C# nhiều nhà phát triển xanh chỉ học đủ để có được và rơi vào một cách tiếp cận thủ tục. Thiết kế OO phù hợp đòi hỏi sự suy đoán bổ sung và xem xét nhiều hơn, vì vậy tự nhiên đó là một kỹ năng phát triển * sau khi * học những điều căn bản của một ngôn ngữ OO. – STW

+1

Tôi đồng ý, chỉ là một trong nhiều lý do tôi đề nghị C# cho các lập trình viên mới ... –

2

Tôi nghĩ rằng đó là để giúp đỡ với di cư từ trước đó Các phiên bản của VB dưới dạng mã trong các biểu mẫu có xu hướng được sửa đổi từ bên ngoài thường xuyên hơn. Bạn bè cũng là mặc định.

Riêng tư là tốt hơn từ quan điểm thiết kế mã và được sử dụng trong C# vì không có thực hành mã hóa lịch sử tương tự như tôi đoán!

4

Thông thường VB.NET nghiêng về phơi bày quá nhiều (quyền riêng tư chủ yếu là chọn tham gia) trong khi C# là nghịch đảo, quyền riêng tư thường không tham gia. Như những người khác đã đề cập đến lý do có thể là do di sản của VB.NET và "thân thiện" của phơi bày tất cả mọi thứ; nó làm cho nó dễ dàng để bắt đầu nhưng cũng dẫn đến thiết kế kém và nỗ lực bổ sung để đảm bảo khớp nối lỏng lẻo.

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