Имя нескольких объектов одного типа - PullRequest
2 голосов
/ 14 марта 2010

Допустим, у нас есть классная машина.
Как бы вы назвали параметры функции, которая занимает два разных автомобиля?

void Race(Car first, Car second);

или, может быть,

void Race(Car car1, Car car2);

Та же самая ситуация с функцией, которая принимает автомобиль и список автомобилей в качестве параметров.
Я привык называть «автомобили» для списка автомобилей, поэтому неудобно использовать такие имена, как:

void Race(Car car, List<Car> cars);

Есть предложения по поводу имен?

Ответы [ 2 ]

4 голосов
/ 14 марта 2010

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

В вашем примере я бы, вероятно, просто набрал void Race(IList<Car> cars), поскольку каждая машина эквивалентна.

Если всегда есть два эквивалентных параметра, использование firstCar и secondCar представляется разумным.

Однако, если бы вы делали что-то вроде перемещения деталей из одного автомобиля в другой, я бы очень описательно, например:

static void StealParts(Car targetCar, Car sourceCar);

Чем более наглядно вы будете именовать аргументы, тем проще будет использовать API.

1 голос
/ 14 марта 2010

Добавление чисел к аргументам функции обычно является плохой практикой, поэтому я бы пошел с void Race(Car first, Car second);

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

P.S. Вы можете с уверенностью переименовать список cars в participants или competitors, как только их тип будет получен с помощью intellisense вашей IDE.

Upd.: Как правило, имена аргументов должны зависеть от имени функции сначала и от типа аргумента второго, если это необходимо. Итак, я бы пошел с Car GetSimilar(Car targetCar, IList<Car> cars).

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