С#.cs имя файла и имя класса должны быть сопоставлены?

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

Ответ 1

Нет, аналогичного требования нет.

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

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

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

Ответ 2

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

Лучшей практикой, однако, является определение одного класса для каждого файла и предоставление файлу того же имени, что и определение класса (или структуры и т.д.).

Ответ 3

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

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

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

Плохая практика заключается в том, чтобы слишком сильно перебросить в один файл.

Ответ 4

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