Случатся ли со мной плохие вещи, если я назову свои массивы, коллекции, списки, перечислимые значения и т. Д. Только множественным числом того, что они содержат? - PullRequest
21 голосов
/ 01 сентября 2009

Я всегда думал, что это было "наилучшей практикой" - явно указывать в именах переменных моей коллекции. Итак, если бы у меня была коллекция объектов Car, я бы обычно назвал Car[] carArray и List<Car> carList.

А потом в 99% случаев я просто делаю что-то вроде ...

foreach (Car car in carArray)
{
    ...
}

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

И теперь, когда у нас есть IEnumberable<T>, я на самом деле сталкиваюсь с вопросом о том, могу ли я написать что-то вроде carIEnumerable? или carEnumerable. Пока что ответ был «нет».

Здесь я думаю, что тип коллекции часто не имеет значения, а когда это имеет значение, все равно не имеет значения, записан ли тип коллекции в имя переменной. У меня просто был случай, когда мне пришлось переключиться с IEnumerable<Car> на List<Car>, потому что мне нужен был «скобочный доступ» к предметам (например, carList[3]). В этом случае два типа коллекций не ведут себя одинаково, но будет ли проблема с именованием переменной cars здесь?

Чтобы не добавлять еще один уровень сложности к этому вопросу, что произойдет, если я использую var? Например.,

var cars = GetCars();

Я, конечно, могу сказать, cars - это какая-то коллекция. Я могу повторить это. Если я использую LINQ, я могу использовать методы расширения. Что еще более важно, если бы я позже изменил тип коллекции, было бы намного меньше кода, чтобы связываться с ним. var будет по-прежнему var, а cars будет по-прежнему cars. Мне это кажется очень привлекательным, и мне трудно увидеть много недостатков.

Итак, просто чтобы убедиться, что мой вопрос ясен: как вы называете переменные вашей коллекции и почему? Существуют ли серьезные трудности с читабельностью или ясностью для простого «множественного числа» названия предмета?

Ответы [ 12 ]

1 голос
/ 01 сентября 2009

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

0 голосов
/ 01 сентября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...