2010-02-08 15 views
11

In Java il nome del file deve essere il nome della classe pubblica definito in quel file java. C# ha requisiti simili? posso avere un file A.cs che definisce solo una Classe B pubblica al suo interno? Grazie,Il nome e il nome della classe C# .cs devono essere abbinati?

+1

Sì, e si sarebbe sorpreso di quanti progetti C# hanno ancora il file Class1.cs creato automaticamente, anche se il nome della classe è stato modificato ... –

+2

@Adam, Michael ha significato "no" a "C# ha requisiti simili ?" ma (correttamente) "sì" a "posso avere un file A.cs che definisce solo una Classe B pubblica all'interno?" – Kevin

+0

@Adam Penso che stava solo rispondendo alla seconda domanda nel testo e non al primo :) –

risposta

16

No, non esiste un requisito simile.

Sì, è possibile farlo.

Tuttavia, è considerata una cattiva pratica.

Microsoft StyleCop ti avviserà se lo fai, ma tutto andrà bene.

20

No, non è necessario che il nome file corrisponda a una singola classe pubblica definita nel file. Di fatto, non è necessario avere una relazione tra il nome del file contenente e le classi definite nel file. Implicito in questa affermazione è che è persino possibile definire più di una classe nello stesso file allegato (anche se ci sono più classi che sono pubbliche, a differenza di Java). Inoltre, è possibile definire una classe su più file usando la parola chiave partial.

La migliore pratica, tuttavia, è definire una classe per file e assegnare al file lo stesso nome della classe (o della struttura, ecc.) Definita.

1

No, in C# non è necessario assegnare un nome alla classe uguale al file.

Lungo una linea simile, è possibile avere più classi public su file. Java ti consente solo di averne uno.

Questo può essere utile per definire alcune enumerazioni pubbliche in un file. Di poche classi piccole.

È una cattiva pratica tuttavia gettare troppo in un file.

1

È possibile avere un file A.cs che contiene la classe pubblica B ma è considerato una cattiva pratica.

Problemi correlati