Quale convenzione di denominazione per il file C # che contiene più classi?

20

Nei progetti C #, raggruppiamo frequentemente classi piccole e strettamente correlate nello stesso file .cs . Questa pratica riduce l'attrito di trattare una miriade di file contenenti quasi nessun codice reale. Tuttavia, esiste una pratica consolidata per denominare il file che contiene più classi?

    
posta Joannes Vermorel 23.11.2011 - 09:42
fonte

4 risposte

18

Il mio consiglio: evita i file contenenti più classi e nomi di file == classi anche se vuoi dire che ci sono troppi file. Prova a organizzarli in cartelle. In casi molto speciali potresti avere classi annidate. In questo caso ha senso separare la classe principale e una classe nidificata in file diversi aventi una classe parziale. In questo caso, utilizzo la seguente convenzione di denominazione.

MyEnumerable.cs
MyEnumerable.MyEnumerator.cs

Probabilmente puoi anche usare nomi di file multipart nel tuo caso.

    
risposta data 23.11.2011 - 09:47
fonte
6

Cerca di evitare di avere più di una classe in un file, non più di una classe pubblica atleast. Durante la denominazione dei file di classe con più classi, scegli un nome descrittivo.

refrences:

  • link . (2.2 Nome Usage & Syntax)
  • link (2.8 Organizzazione file)
risposta data 23.11.2011 - 09:51
fonte
4

Considera che ponendo una domanda su come denominare tali file, hai già identificato un odore di codice che è problematico per te, e questo è un problema che non andrà via facilmente.

Indipendentemente dal ragionamento, scoprirai che è difficile scegliere nomi sensibili quando hai più di una classe in un file, perché anche se i file sono in qualche modo correlati, ci sarà sempre la tentazione di lanciare in qualcosa che non si adatta perfettamente al nome del gruppo che assegni a un insieme di classi.

La risposta breve è quindi che non esiste uno standard riconosciuto o stabilito per nominare questi tipi di file. Il mio suggerimento sarebbe quello di sederti con il tuo team e guardare all'organizzazione del tuo codice, e applicare un po 'di sforzo di refactoring per riordinare un po' le cose.

Tuttavia, per semplificare le cose, vorrei chiedere se le classi aggiuntive sono nidificate o indipendenti. Se indipendenti, queste classi possono essere suddivise più facilmente nei propri file, con ogni file denominato per la singola classe contenuta all'interno. Se nidificati, potrebbero essere necessarie ulteriori decisioni su come tali classi dovrebbero essere organizzate, tuttavia le classi annidate potrebbero non dover essere rimosse immediatamente, e quindi i file verrebbero nominati per la classe più esterna. Per quanto riguarda la nidificazione, ci sono molti argomenti contro, e alcuni ragionevoli per l'annidamento in alcune circostanze, e il mio consiglio sarebbe quello di chiedere se un namespace ragionevole e la creazione di una struttura di codice sorgente più organizzata potrebbero essere un modo migliore per affrontare il problema.

Tuttavia, realisticamente, scoprirai che alla fine del ciclo di vita del tuo progetto, avresti voluto che tutti i tuoi file contenessero solo una singola classe e una bella struttura di directory / spazio dei nomi per utilizzarla.

Saluti,

    
risposta data 23.11.2011 - 22:02
fonte
3

Ero abituato ad avere più classi in un unico file, ma da quando ho iniziato a lavorare come programmatore (piuttosto che essere da solo), ho scoperto che può essere un incubo di manutenzione con molte classi in un file singolo. Sebbene, ammetto, Visual Studio può essere di grande aiuto utilizzando F12 (vai alla definizione).

Quello che ho iniziato a fare è usare una convenzione di denominazione come segue: namespace.classname.cs In questo modo so esattamente cosa c'è in ogni file e fornisce anche una sorta di contesto generale del file . Se la classe si troverà nello spazio dei nomi predefinito, allora andrò avanti e useremo solo classname.cs (simile a Java).

    
risposta data 23.11.2011 - 20:48
fonte

Leggi altre domande sui tag