Параметр название: именем или именем?
Я стараюсь быть грамматически правильным в моем именовании*. Я всегда использовал filename вместо fileName. Соглашение java также, кажется, использует это, но FxCop предпочитает fileName.
здесь обсуждение в Википедии об этом. Чем больше я читаю, тем больше чувствую, что я прав (что вполне обычно! :) ). У кого-нибудь есть окончательный ответ или это просто что-то субъективное?
* Я просто надеюсь, что в этом посте нет грамматических ошибок!
9 ответов:
допустимо на английском языке писать "filename"или" file name". Когда вы переводите это в кодирование, заглавная буква " n "или не заглавная буква" n " может идти в любом случае (предполагая camelCase или PascalCase).
кстати, вы допустили грамматическую ошибку в вопросе -- как ни странно, в том самом предложении, в котором вы выражали свою надежду, что грамматических ошибок не было. Вы сказали: "я просто надеюсь, что в этом посте нет грамматических ошибок!"Но" ошибки " - это множественное число, поэтому "есть "из" Есть " представляет собой предметно-глагольное несогласие.
* Я просто надеюсь, что в этом посте нет грамматических ошибок!
нижний регистр рекомендуется для полей и параметров.
Пример 1:
fileName // for fields, parameters, etc. FileName // for properties, class names, etc.как правило,
fileNameиспользуется, а неfilename; вы можете проверить это, прочитав исходный код материалов с открытым исходным кодом, созданных Microsoft, таких как Корпоративная Библиотека.причины:
- The главное за этим стоит то, что имена более читаемы в этом случай.
- также этот подход добавляет последовательность при наличии нескольких параметров(полей, переменных..) используются в том же методе (класс..) и с тем же префиксом "файл", как показано ниже:
- ...есть еще несколько причин, но они более субъективны.
Пример 2:
fileName, fileSize... // instead of filename AND filesizeсм. также:
- Соглашения Об Именах at Википедия
- Общие Соглашения Об Именовании в MSDN
для полного набора правил соглашения об именах я рекомендую проверить эту книгу:
- рекомендации по разработке фреймворка: соглашения, идиомы и шаблоны для многоразовых библиотек .NET
(2-е издание) Кшиштофа, опубликованное в ноябре 2008 года
(лично мы не используем 100% рекомендаций из этой книги, но в целом там довольно хорошие рекомендации)а также проверить некоторые вещи вIDesign.net
'filename'предполагает, что это слово описывает единичный объект, такой как "корова" или "стул"'fileName'предполагается, что это сложный объект, что существует объект с именем file и что этот объект описывает имя этого файла.два философских подхода, на ваш выбор.
Я думаю, что ответы здесь охватывают два вопроса.
'FileName' vs 'Filename' (должен "имя" - это отдельное слово)
и
'fileName' vs 'FileName' (должен сначала символ должен быть в нижнем регистре).
в большинстве случаев я предпочитаю рассматривать это слово как одно целое слово "имя файла". Я также предпочитаю запускать переменные / методы с нижним регистром для облегчения навигации по меню завершения кода.
Я думаю, что проблема верблюда дело здесь тоже, который я думаю, следует использовать, чтобы различать многословные имена.
разве не очевиден ответ, что FxCop является автоматизированным инструментом? Он признает, что" имя "- это слово, поэтому он предлагает начать его с большой буквы N. Мы знаем, что" имя файла " также является словом, и поэтому только первое F должно быть заглавным.
Filename ~ идентифицирующее имя, присвоенное электронно сохраненному файлу компьютера, соответствующее ограничениям, наложенным операционной системой, как по длине или ограниченному выбору символов.
в прошлом это считалось двумя словами, но теперь определяется как одно слово так
var filename = ......
Если бы это было два слова, это было бы
var fileName = ....
здесь не может быть ни правильного, ни неправильного.
Это то, что является сугубо субъективным и полностью относится к сообществу в котором вы работаете. Если FxCop и StyleCop и код .net, с которым вы регулярно сталкиваетесь, используют fileName, то используйте fileName. Если он использует что-то еще, то используйте то, что есть.
ваш первый приоритет, вероятно, должен быть согласован с шаблоном в вашем собственном коде, а затем согласован с вашим сообществом.
в этом конкретном случае .net Reflector показывает много кода .net с использованием имени файла, поэтому я бы пошел с этим шаблоном лично.
Если бы Вы были в мире java и запускали PMD и checkstyle, а их API часто использовали filename, тогда я бы пошел с этим.
в дополнение к статье Википедии именования, есть также практика программирования Керниган и Пайк. Первая глава в нем затрагивает много имен и кода вопросы согласованности.
Если вы пишете c / C++ существует сильная тенденция использовать имена, которые люди могут на самом деле читать; т. е. имя файла хорошо, и поэтому yet_another_file_name (предполагая, что вы не рассматриваете имя файла как правильное английское слово - я обычно делаю).
посмотреть стандарты кодирования google