Nếu tôi tạo tệp lớp mới, Visual Studio sẽ không đặt tệp đó ở chế độ công khai theo mặc định. Tôi có thể thay đổi điều này không?Tại sao các lớp học của tôi được đặt riêng tư theo mặc định trong Visual Studio?
Trả lời
Tôi đã nghe khiếu nại về điều này, tôi không tin rằng đó là một tùy chọn có thể thay đổi.
Bạn có nghĩa là bản thân lớp học không có sẵn trong các lớp khác? Hoặc bạn có nghĩa là tất cả nội dung của tệp mặc định là quyền truy cập riêng tư?
Nếu bạn muốn lớp hiển thị trong các lớp khác, bạn chỉ cần đảm bảo rằng không gian tên hiển thị trong lớp khác (với từ khóa "đang sử dụng" trong C# hoặc chỉ có chúng trong cùng một không gian tên) .
Không biết bạn đang nói ngôn ngữ nào, nhưng trong C# tất cả các phương pháp, biến thành viên, thuộc tính, vv mặc định là riêng tư. Nếu bạn muốn chúng được công khai, bạn cần phải xác định riêng cho từng thành viên. Tôi không nghĩ rằng nó có thể thay đổi hành vi này trong C#.
Có các vấn đề khác với mẫu mã mặc định - ví dụ: chúng không tuân thủ StyleCop ngoài hộp, vì dòng "đang sử dụng" nằm ngoài khai báo không gian tên.
Bạn có thể sử dụng ReSharper để tạo tệp lớp học của mình từ mẫu, cho phép bạn đặt bất kỳ mã nào bạn muốn vào mẫu. Đó là những gì tôi làm :)
Theo mặc định, một lớp không có trình chỉ định truy cập là nội bộ và thành viên mặc định là riêng tư. Điều này giữ cho khả năng hiển thị bị giới hạn càng tốt và do đó làm tăng sự đóng gói.
Tạo một lớp học mới công khai mà không hề nghĩ đến việc phá vỡ toàn bộ ý tưởng đóng gói.
Lớp mẫu mà VS sử dụng để tạo ra một lớp mới có thể được tìm thấy trong file zip này (trong trường hợp CSharp):
C: \ Program Files \ Microsoft Visual Studio 8 \ Common7 \ IDE \ ItemTemplates \ CSharp \ 1033 \ Class.zip hoặc C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ ItemTemplates \ CSharp \ Code \ 1033 khi sử dụng VS Orcas
Mở tệp nén, thêm từ khóa công khai, lưu và bạn đã hoàn tất. Mỗi khi bạn thêm một lớp, nó sẽ được công khai. Hi vọng điêu nay co ich.
Tôi không nghĩ rằng bạn có thể thay đổi một tùy chọn trong VS để tất cả các lớp học tạo ra là công khai theo mặc định (nhưng tôi sẽ nhìn vào nó.)
tôi sẽ nghĩ rằng trừ khi đó bạn có một nhu cầu rất cụ thể cho tất cả các lớp học của bạn được tuyên bố công khai (và tôi không thể nghĩ ra bất kỳ) rằng bạn nên để mặc định như nó được. Điều này cho phép bạn đưa ra các quyết định về chính xác các lớp nào là công khai và những lớp nào sẽ được giữ nguyên. Theo tôi, một lựa chọn thiết kế tốt sẽ quyết định rằng các lớp được khai báo 'nội bộ' theo mặc định.
- 1. Tại sao Visual Studio không tạo lớp công khai theo mặc định?
- 2. Tại sao Auto Resolve xung đột theo mặc định trong Visual Studio 2012?
- 3. Tại sao AutoDetectChangesEnabled được đặt thành false theo mặc định?
- 4. Tôi có thể đặt bản sao của hàm tạo riêng tư và vẫn sử dụng cài đặt mặc định
- 5. Tại sao các ứng dụng WinForms STAThread theo mặc định?
- 6. Tại sao lớp học của tôi không được chấp nhận
- 7. Tại sao Visual Studio's intellisense hiển thị các thành viên và chức năng riêng tư?
- 8. Tại sao bad_alloc (const char *) được tạo riêng tư trong Visual C++ 2012?
- 9. Tại sao 'char' được ký theo mặc định trong C++?
- 10. Tại sao Visual Studio 2010 tiếp tục thêm "tham chiếu đến tự" trong thư viện lớp học của tôi?
- 11. Thực hành Enum - Xác định bên trong một lớp học/riêng biệt, đặt công khai/riêng tư
- 12. Thành viên riêng tư trong lớp học pimpl?
- 13. Tại sao PreAuthenticate không được kích hoạt theo mặc định?
- 14. Tại sao biến thành viên riêng tư có thể được thay đổi bởi cá thể lớp?
- 15. Tại sao chức năng bạn bè này không thể truy cập thành viên riêng tư của lớp học?
- 16. lớp học không được xác định mặc dù được nhập
- 17. Các lớp học riêng và uml
- 18. Xóa cảnh báo an toàn (_CRT_SECURE_NO_WARNINGS) khỏi các dự án theo mặc định trong Visual Studio
- 19. Tại sao Visual Studio đánh dấu lớp của tôi là một thành phần?
- 20. Tôi có thể "mở rộng" một "lớp học" được đóng theo định nghĩa trong Javascript không?
- 21. Visual Studio: Tạo mã xem mặc định
- 22. Singleton - Tại sao nên sử dụng các lớp học?
- 23. Quyết định thiết kế: Tại sao và khi nào để đặt giao diện riêng tư?
- 24. Ngăn chặn Visual Studio từ việc thêm tài liệu tham khảo mặc định và usings cho các lớp học mới
- 25. Tôi có nên đặt Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture theo mặc định trong ứng dụng của tôi không?
- 26. Phụ thuộc thông tư trong các lớp học java
- 27. Tôi có thể không có lớp học riêng tư ở Scala?
- 28. Tại sao Visual Studio Setup Project của tôi khởi chạy IE khi quá trình cài đặt hoàn tất?
- 29. Tại sao IBOutlet của tôi được phát hành theo ARC?
- 30. Tại sao nhiệm vụ keepecive Sitecore được đặt thành 1 giờ theo mặc định?
Điều này dường như là một bản sao chính xác của http://stackoverflow.com/questions/39903/vs-net-defaults-to-private-class và câu hỏi đó cũng có câu trả lời được chấp nhận. –