2010-02-08 6 views
11

En Java, el nombre de archivo debe ser el nombre de clase pública definido en ese archivo java. ¿Tiene C# un requisito similar? ¿Puedo tener un archivo A.cs que solo define una Clase B pública adentro? gracias,C# .cs nombre de archivo y nombre de clase deben coincidir?

+1

Sí, y se sorprendería de cuántos proyectos de C# todavía tienen el archivo Class1.cs creado automáticamente, aunque se haya cambiado el nombre de clase ... –

+2

@ Adam, Michael quiso decir "no" a "¿Tiene C# un requisito similar? ? " pero (correctamente) "sí" a "¿puedo tener un archivo A.cs que solo define una Clase B pública adentro?" – Kevin

+0

@ Adam creo que solo estaba respondiendo la segunda pregunta en el texto y no la primera :) –

Respuesta

16

No, no hay un requisito similar.

Sí, puedes hacer esto.

Se considera una mala práctica, sin embargo.

Microsoft StyleCop le avisará si hace esto, pero todo compilará bien.

20

No, no es necesario que el nombre de archivo coincida con una única clase pública definida en el archivo. De hecho, no es necesario tener una relación entre el nombre del archivo contenedor y las clases definidas en el archivo. Implícito en esta afirmación es que incluso es posible definir más de una clase en el mismo archivo adjunto (incluso si hay varias clases que son públicas, a diferencia de Java). Además, es posible definir una clase en múltiples archivos usando la palabra clave partial.

La mejor práctica, sin embargo, es definir una clase por archivo y dar al archivo el mismo nombre que la clase (o estructura, etc.) que se está definiendo.

1

No, en C# no tiene que nombrar su clase igual que su archivo.

En una línea similar, puede tener múltiples clases public en el archivo. Java solo te permite tener uno.

Esto puede ser útil para definir algunas enumeraciones públicas en un archivo. De unas pocas clases pequeñas.

Sin embargo, es una mala práctica incluir demasiado en un archivo.

1

Es posible tener un archivo A.cs que contenga la clase pública B pero se considera una mala práctica.

Cuestiones relacionadas