Плохие вещи произойдут со мной, если я назову свои массивы, наборы, списки, enumerables, и т.д. просто множественное число того, что они содержат?

Я попробовал ответ @feifan.overflow, но не работал, возможно, я должен перезагрузить его для применения изменений.

команда ниже обработанного для меня.

я работаю, Хрипящее Debian на Dell PowerEdge (кажется, некоторая несовместимость)

rmmod acpi_pad
21
задан devuxer 6 November 2013 в 18:51
поделиться

12 ответов

Проблема с этим видом именования заключается в том, что он слишком сильно концентрируется на фактической реализации, а не на назначении свойства. Вместо CarArray вы можете использовать OwnedCars или что-то еще, что сообщает пользователю, почему существует это перечисление.

Я думаю, что имя переменной цикла car в небольшом foreach -loop вполне нормально.

Если вы напишете var cars = GetCars () , компилятор будет выглядеть у типа в правой части присвоения, в данном случае возможно IEnumerable , и дает cars этого типа. Вы даже можете увидеть это при последующих использовании переменной, если наведете на нее указатель мыши.

Если вы измените тип коллекции и не Возможно, это IEnumerable , если вы используете их в циклах foreach .

Таким образом, вы могли бы также предоставить эти коллекции как IEnumerable , чтобы пользователи вашего класса не слишком сильно зависели от определенной реализации.

20
ответ дан 29 November 2019 в 06:07
поделиться
var car = cars.Where(c => c.Name == "Robin Reliant");

Удобочитаемость побеждает.

Поэтому я использую множественное число.

Доброта,

Дэн

36
ответ дан 29 November 2019 в 06:07
поделиться

Мне никогда не нравился подход «укажите тип переменной в ее имени» - я действительно думаю, что это мешает плавному чтению источника. Я считаю, что код следует читать как рассказ, и поэтому для меня совершенно очевидно, что группа автомобилей (и мне все равно, реализована ли она в виде массива, связанного списка, кучи, набора или чего-то еще) называется «Тачки»:

foreach (Car currentCar : ParkingLog.getCars()) {
    stolenCars.add(currentCar);    
}

fencer.cars = stolenCars;

У меня работает.

12
ответ дан 29 November 2019 в 06:07
поделиться

Обычно я начинаю с множественного числа (например, автомобили). Часто у вас также будет локальная переменная в единственном числе (например, автомобиль), иногда бывает неудобно читать код с двумя очень похожими именами переменных, и в этом случае я найду новое имя для одной из переменных.

Я почти никогда не использовал carArray, скорее allCars, или selectedCars, или что-то подходящее.

12
ответ дан 29 November 2019 в 06:07
поделиться

Лично я по возможности избегаю использовать тип коллекции в имени переменной. Это может выглядеть красиво, но это невыполнимое ограничение, которое другие разработчики со временем нарушат. Если тип переменной действительно важен для конкретной операции, я бы вместо этого подумал о том, чтобы переписать код, чтобы он был ...

  1. Меньше заботы о конкретной реализации коллекции
  2. Сделайте код короче / лаконичнее до точки типа переменной однозначно

Или, другими словами, мне не нравится венгерская нотация.

12
ответ дан 29 November 2019 в 06:07
поделиться

Предпочитаете автомобили carArray, но автомобили, вероятно, тоже не то, что вам нужно. Какие автомобили?

  • allCars
  • redCars
  • brokenCars
  • carsWith3Axels

Во всех, кроме нескольких случаев (всегда бывают эти досадные исключения) имена переменных, например, cars, недостаточно описательны.

12
ответ дан 29 November 2019 в 06:07
поделиться

Вы, конечно, не должны добавлять имя типа как часть имени переменной - в значительной степени по той причине, которую вы упомянули. Лично, если бы у меня была коллекция объектов Car, я бы просто назвал коллекцию Cars - множественное число указывает на то, что их несколько, без указания типа, что необязательно.

5
ответ дан 29 November 2019 в 06:07
поделиться

В процессе обучения я давал имена своим переменным, которые включают тип переменной. Мне было полезно увидеть carArray где-нибудь в коде как напоминание о том, что это массив. Но ваш вопрос поднимает очень важный вопрос: если вы измените это позже, вам придется искать все эти ссылки, а это может стать большим кошмаром. Я вижу мудрость в именовании переменных в соответствии с ответом Мэтью Вайнса «allCars», «brokenCars». Думаю, с этого момента я буду делать это чаще, по мере того, как мое кодирование улучшится.

5
ответ дан 29 November 2019 в 06:07
поделиться

Указание типа коллекции в имени переменной является проблемой, когда обслуживание требует изменения типа. Проще использовать плюрализацию или что-то общее вроде carColl. Он передает смысл, не будучи чем-то, на что должны повлиять будущие изменения.

3
ответ дан 29 November 2019 в 06:07
поделиться

Думаю, я мог бы просто назвал массив автомобилей, и он не have made any difference.

Nope, doesn't make a difference to the compiler, but using descriptive names helps with readability, maintainability, and reuse.

In Visual Studio, I can quickly find the data type. Therefore, I use complete descriptive names. Plurals are fine. If the plural seems awkward then I append Listing or whatever is needed to indicate the variable contains a "collection".

For example, carArray means nothing to me. Is car an abbreviation? What if you change the implementation of carArray into a IList or IEnumerable of Car objects? Does that mean you change the name of the variable, or leave the name as it is? Too much to think about. Yet, I would understand Cars, CarListing, CarList, CarsByModel, and so on.

2
ответ дан 29 November 2019 в 06:07
поделиться

Я думаю, что использование множественного числа имеет смысл, и это метод, который я обычно использую в своем коде. Я никогда не обнаруживал, что наличие типа данных как части имени переменной может быть настолько полезным.

1
ответ дан 29 November 2019 в 06:07
поделиться

Разница между "cars" и "carArray" заключается в самодокументированном характере кода. Не нужно выяснять, какой тип коллекции вы используете, если она встроена в название. В тривиальной программе это не имеет особого значения, но в более существенной важна экономия времени.

-4
ответ дан 29 November 2019 в 06:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: