5

mam reorganizacji moje pliki źródłowe w jednym roztworze z jednego projektu, z różnych przyczyn:C# organizacja pojedynczy projekt

To pozostawia mnie z wielu nazw, które są podzielone na wiele plików. Do tej pory używam tej konwencji: biorąc pod uwagę nazw Company.Project.A, pliki są nazywane A.f1.cs, A.f2.cs i tak dalej, i nazw Company.Project.B jest podzielony w poprzek B.f1.cs, B.f2.cs itp

Biorąc pod uwagę ograniczenie pojedynczy projekt, istnieją lepsze sposoby organizowania wielu plików w wielu przestrzeniach nazw?

Odpowiedz

11

Tak - używaj folderów.

Jeśli utworzysz folder w projekcie, nowe klasy w tym folderze automatycznie użyją nazwy folderu jako podstawy dla przestrzeni nazw.

Na przykład, jeśli masz projekt z domyślnej przestrzeni nazw „Company.Project” i folder „Foo” zawierający „Bar.cs” będziesz skończyć z:

using System; // Etc 

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

WIĘC rozwiązanie jest właśnie tutaj. To są foldery. Ale czasami jest to trudne. Przede wszystkim dobrym pomysłem jest posiadanie jednego pliku na klasę. Jeśli spakujesz kilka klas do jednego pliku - będziesz miał problemy ze znalezieniem ich z czasem.

Druga rzecz dotycząca folderów - jeśli klikniesz folder i wybierzesz na przykład "Dodaj -> Nowa pozycja", ten element zostanie umieszczony w wybranym folderze. Ale uważaj! Jeśli przeniesiesz pliki między folderami, przestrzenie nazw nie zostaną zaktualizowane.

To popularne źródło projektu niechcianego. Zaraz po pewnym czasie możesz skończyć z projektem, w którym masz uporządkowany folder i pliki, ale nie odzwierciedlają przestrzeni nazw. Na przykład, jeśli masz klasę MyClass w folderze MyFolder, upewnij się, że twoja przestrzeń nazw dla tej klasy jest podobna do MyApp.MyFolder, a nie jakaś stara bzdura.

Więc jeśli nie będziesz pakować klas w jeden plik i będziesz obserwować, czy przestrzenie nazw klas odzwierciedlają hierarchię folderów - jesteś na dobrej drodze, abyś był łatwy w czytaniu i nawigacji.

1

100% zgadzam się z Jonem Skeetem.

Aby uzyskać więcej informacji na poziomie folderu, tworzymy foldery łamiące strukturę przestrzeni nazw, poprzedzając je podkreśleniem.