В Java имя файла должно быть именем открытого класса, определенным в этом java файле. Имеет ли С# аналогичное требование? я могу получить файл A.cs, который определяет только открытый класс B внутри? спасибо,
С#.cs имя файла и имя класса должны быть сопоставлены?
Ответ 1
Нет, аналогичного требования нет.
Да, вы можете это сделать.
Однако считается плохой практикой.
Microsoft StyleCop предупредит вас, если вы это сделаете, но все будет прекрасно компилироваться.
Ответ 2
Нет, нет требования, чтобы имя файла соответствовало одному публичному классу, определенному в файле. На самом деле, нет необходимости иметь связь между именем содержащего файла и любыми классами, которые определены в файле. Неявным в этом утверждении является то, что даже можно определить более одного класса в том же охватывающем файле (даже если есть несколько классов, которые являются общедоступными, в отличие от Java). Более того, можно определить класс для нескольких файлов, используя partial
.
Лучшей практикой, однако, является определение одного класса для каждого файла и предоставление файлу того же имени, что и определение класса (или структуры и т.д.).
Ответ 3
Нет, в С# вам не нужно называть ваш класс таким же, как ваш файл.
В подобной строке вы можете иметь несколько классов public
в файле. Java позволяет вам только один.
Это может быть полезно для определения нескольких открытых перечислений в одном файле. Несколько небольших классов.
Плохая практика заключается в том, чтобы слишком сильно перебросить в один файл.
Ответ 4
Возможно, имеется файл A.cs
, который содержит открытый класс B
, но считается плохой практикой.