2010-12-13 55 views
8

Việc sử dụng từ khóa riêng tư là gì nếu mọi thứ, theo mặc định, là riêng tư?từ khóa riêng tư không có từ khóa riêng tư

public class A { 
    object someObject; 
    private object someOtherObject; 
} 

Cả hai điều trên đều không riêng tư? Nếu cả hai đều là riêng tư thì tại sao cần phải có chính từ khóa đó?

+5

Mặc định là không tin cho * mọi *: Giá trị mặc định cho các lớp học viên/struct là tư nhân; mặc định cho các loại cấp cao nhất là nội bộ. http://msdn.microsoft.com/en-us/library/ba0a1yw2.aspx – LukeH

+0

Liên kết tuyệt vời, LukeH – MyNameIsJob

+0

Nhân bản (mặc dù câu hỏi này là trước tiên): http://stackoverflow.com/questions/8479214/any-reason -to-write-the-private-keyword-in-c – Jon

Trả lời

20

Sử dụng rõ ràng từ khóa làm rõ mã, bất kể mã mặc định là gì.

Tránh phỏng đoán hoặc cần kiểm tra thực tế trên bộ phận của trình đọc/bảo trì mã, nếu có thể.

Có một tham chiếu cho thông tin hiển thị qua this prior question.

1

Tính sạch sẽ của mã nằm cạnh Thiên Chúa. Giúp dễ đọc.

3

Mặc định đã thay đổi theo thời gian. Nó được sử dụng để được trong VB rằng tất cả mọi thứ đã được công khai theo mặc định. Bây giờ nó là riêng tư.

Trong các ngôn ngữ lập trình khác, mặc định là khác nhau.

Vì vậy, viết ra giúp người đọc mã.

+2

Thay đổi mặc định bằng ngôn ngữ được thiết lập như C# sẽ là một thay đổi lớn. Khả năng xảy ra điều này là rất nhỏ, tôi sẽ tưởng tượng. – LukeH

+1

Vì vậy, họ nghĩ trong những ngày của VB6. Sau đó, VB.NET đến ... – fingerprint211b

+3

@ fingerprint211b: Đó là sự thật, nhưng nhiều người sẽ xem xét VB6 và VB.NET là phương ngữ riêng biệt hơn là chỉ là một gia tăng của số phiên bản. – LukeH

9

Như Steve Townsend said, nó làm rõ mã, nhưng nó cũng rất hữu ích trong các thuộc tính với quyền truy cập khác nhau, ví dụ .:

public int SomeProperty { get; private set; } 
Các vấn đề liên quan