Я попробовал ответ @feifan.overflow, но не работал, возможно, я должен перезагрузить его для применения изменений.
команда ниже обработанного для меня.
я работаю, Хрипящее Debian на Dell PowerEdge (кажется, некоторая несовместимость)
rmmod acpi_pad
Проблема с этим видом именования заключается в том, что он слишком сильно концентрируется на фактической реализации, а не на назначении свойства. Вместо CarArray
вы можете использовать OwnedCars
или что-то еще, что сообщает пользователю, почему существует это перечисление.
Я думаю, что имя переменной цикла car в небольшом foreach
-loop вполне нормально.
Если вы напишете var cars = GetCars ()
, компилятор будет выглядеть у типа в правой части присвоения, в данном случае возможно IEnumerable
, и дает cars
этого типа. Вы даже можете увидеть это при последующих использовании переменной, если наведете на нее указатель мыши.
Если вы измените тип коллекции и не
Возможно, это IEnumerable
, если вы используете их в циклах foreach
.
Таким образом, вы могли бы также предоставить эти коллекции как IEnumerable
, чтобы пользователи вашего класса не слишком сильно зависели от определенной реализации.
var car = cars.Where(c => c.Name == "Robin Reliant");
Удобочитаемость побеждает.
Поэтому я использую множественное число.
Доброта,
Дэн
Мне никогда не нравился подход «укажите тип переменной в ее имени» - я действительно думаю, что это мешает плавному чтению источника. Я считаю, что код следует читать как рассказ, и поэтому для меня совершенно очевидно, что группа автомобилей (и мне все равно, реализована ли она в виде массива, связанного списка, кучи, набора или чего-то еще) называется «Тачки»:
foreach (Car currentCar : ParkingLog.getCars()) {
stolenCars.add(currentCar);
}
fencer.cars = stolenCars;
У меня работает.
Обычно я начинаю с множественного числа (например, автомобили). Часто у вас также будет локальная переменная в единственном числе (например, автомобиль), иногда бывает неудобно читать код с двумя очень похожими именами переменных, и в этом случае я найду новое имя для одной из переменных.
Я почти никогда не использовал carArray, скорее allCars, или selectedCars, или что-то подходящее.
Лично я по возможности избегаю использовать тип коллекции в имени переменной. Это может выглядеть красиво, но это невыполнимое ограничение, которое другие разработчики со временем нарушат. Если тип переменной действительно важен для конкретной операции, я бы вместо этого подумал о том, чтобы переписать код, чтобы он был ...
Или, другими словами, мне не нравится венгерская нотация.
Предпочитаете автомобили carArray, но автомобили, вероятно, тоже не то, что вам нужно. Какие автомобили?
Во всех, кроме нескольких случаев (всегда бывают эти досадные исключения) имена переменных, например, cars, недостаточно описательны.
Вы, конечно, не должны добавлять имя типа как часть имени переменной - в значительной степени по той причине, которую вы упомянули. Лично, если бы у меня была коллекция объектов Car, я бы просто назвал коллекцию Cars - множественное число указывает на то, что их несколько, без указания типа, что необязательно.
В процессе обучения я давал имена своим переменным, которые включают тип переменной. Мне было полезно увидеть carArray где-нибудь в коде как напоминание о том, что это массив. Но ваш вопрос поднимает очень важный вопрос: если вы измените это позже, вам придется искать все эти ссылки, а это может стать большим кошмаром. Я вижу мудрость в именовании переменных в соответствии с ответом Мэтью Вайнса «allCars», «brokenCars». Думаю, с этого момента я буду делать это чаще, по мере того, как мое кодирование улучшится.
Указание типа коллекции в имени переменной является проблемой, когда обслуживание требует изменения типа. Проще использовать плюрализацию или что-то общее вроде carColl. Он передает смысл, не будучи чем-то, на что должны повлиять будущие изменения.
Думаю, я мог бы просто назвал массив автомобилей, и он не 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.
Я думаю, что использование множественного числа имеет смысл, и это метод, который я обычно использую в своем коде. Я никогда не обнаруживал, что наличие типа данных как части имени переменной может быть настолько полезным.
Разница между "cars" и "carArray" заключается в самодокументированном характере кода. Не нужно выяснять, какой тип коллекции вы используете, если она встроена в название. В тривиальной программе это не имеет особого значения, но в более существенной важна экономия времени.