2009-05-27 24 views
7

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?

+0

Đ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. –

Trả lời

-1

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.

-1

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#.

1

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 :)

11

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.

Source

+0

Doh! bạn quá nhanh! –

+0

Đồng ý, đó là NHANH !!!! Câu trả lời tốt. – Skittles

+0

........ ;-) Cảm ơn – Shoban

-1

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.

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