Имя файла C # .cs и имя класса должны совпадать? - PullRequest
16 голосов
/ 08 февраля 2010

В Java имя файла должно быть именем открытого класса, определенного в этом файле Java.Есть ли в C # аналогичные требования?я могу иметь файл A.cs, который определяет только открытый класс B внутри?спасибо,

Ответы [ 4 ]

23 голосов
/ 08 февраля 2010

Нет, не требуется, чтобы имя файла соответствовало одному общедоступному классу, определенному в файле. Фактически, нет необходимости иметь связь между именем содержащего файла и любыми классами, которые определены в файле. В этом утверждении подразумевается, что даже возможно определить более одного класса в одном и том же вложенном файле (даже если в отличие от Java существует несколько открытых классов). Кроме того, можно определить класс для нескольких файлов, используя ключевое слово partial.

Однако рекомендуется назначать по одному классу на файл и давать файлу то же имя, что и определяемый класс (или структура и т. Д.).

22 голосов
/ 08 февраля 2010

Нет, аналогичных требований нет.

Да, вы можете сделать это.

Однако считается плохой практикой.

Microsoft StyleCop предупредит вас, если вы сделаете это, но все будет хорошо скомпилировано.

2 голосов
/ 08 февраля 2010

Возможно иметь файл A.cs, который содержит открытый класс B, но это считается плохой практикой.

2 голосов
/ 08 февраля 2010

Нет, в C # вам не нужно называть свой класс так же, как ваш файл.

В аналогичной строке вы можете иметь несколько public классов в файле. Java только позволяет иметь один.

Это может быть полезно для определения нескольких общедоступных перечислений в одном файле. Из нескольких небольших классов.

Плохая практика, однако, бросать слишком много в один файл.

...