5

Tôi đang tổ chức lại các file nguồn của tôi vào một giải pháp duy nhất với một dự án duy nhất, do nhiều nguyên nhân:C tổ chứC# single dự án

này khiến tôi với nhiều không gian tên, được tách ra trên nhiều tập tin. Cho đến nay, tôi đang sử dụng Công ước này: trao namespace Company.Project.A, các tập tin được đặt tên A.f1.cs, A.f2.cs và như vậy, và không gian tên Company.Project.B được tách ra trên B.f1.cs, B.f2.cs vv

Do hạn chế dự án duy nhất, đang có bất kỳ cách nào tốt hơn để tổ chức nhiều tệp trong nhiều không gian tên?

Trả lời

11

Có - sử dụng thư mục.

Nếu bạn tạo thư mục trong một dự án, các lớp mới trong thư mục đó sẽ tự động sử dụng tên thư mục làm cơ sở cho vùng tên.

Ví dụ, nếu bạn có một dự án với một không gian tên mặc định của "Company.Project" và một thư mục "Foo" chứa "Bar.cs" bạn sẽ kết thúc với:

using System; // Etc 

namespace Company.Project.Foo 
{ 
    class Bar 
    { 
    } 
} 
2

Vì vậy, các giải pháp là ngay tại đây. Đó là thư mục. Nhưng đôi khi khó khăn. Đầu tiên, bạn nên có một tệp cho mỗi lớp. Nếu bạn sẽ đóng gói nhiều lớp vào một tệp - bạn sẽ gặp vấn đề với việc tìm kiếm chúng theo thời gian.

Điều thứ hai về các thư mục - nếu bạn nhấp vào một thư mục và chọn ví dụ "Thêm -> Mục mới", mục này sẽ được đưa vào thư mục đã chọn. Nhưng hãy cẩn thận! Nếu bạn sẽ di chuyển các tập tin giữa các thư mục, không gian tên không được cập nhật.

Đó là nguồn phổ biến của dự án gây rối. Chỉ sau một thời gian bạn có thể kết thúc với một dự án mà bạn có thư mục và tệp được sắp xếp gọn gàng, nhưng không phản ánh không gian tên. Vì vậy, ví dụ, nếu bạn có lớp MyClass trong thư mục MyFolder chắc chắn, không gian tên của bạn cho lớp này là một cái gì đó giống như MyApp.MyFolder và không phải một số rác cũ. Vì vậy, nếu bạn sẽ không đóng gói các lớp vào một tập tin và xem các lớp không gian tên phản ánh phân cấp thư mục - bạn đang trên con đường tốt để làm cho bạn dự án rất dễ đọc và điều hướng.

1

100% đồng ý với Jon Skeet.

Để có thêm tổng quan ở cấp thư mục, chúng tôi đang tạo các thư mục vi phạm cấu trúc không gian tên bằng cách đặt trước chúng với dấu gạch dưới.

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