具有相同类型的多个对象的名称

时间:2010-03-14 18:20:22

标签: language-agnostic naming-conventions

假设我们有一辆轿车 你如何命名两种不同车型的功能参数?

void Race(Car first, Car second);

或者

void Race(Car car1, Car car2);

与汽车和汽车列表作为参数的功能相同的情况 我习惯将“汽车”命名为汽车列表,因此使用以下名称是不方便的:

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

有关姓名的任何建议吗?

2 个答案:

答案 0 :(得分:4)

我个人选择代表汽车使用方式的名称。

在你的例子中,我可能只有void Race(IList<Car> cars),因为每辆车都是等价的。

如果总有两个相同的选项,使用firstCar和secondCar似乎是合理的。

但是,如果您正在做一些事情,比如将零件从一辆车移动到另一辆车,我会非常具有描述性,即:

static void StealParts(Car targetCar, Car sourceCar);

您在参数命名中的描述性越强,您的API就越容易使用。

答案 1 :(得分:1)

在函数参数中添加数字通常是一种不好的做法,因此我选择void Race(Car first, Car second);

关于你的第二个功能,我没有看到名为cars的汽车列表出现任何问题,但我无法理解将单个汽车作为单独的参数传递的想法,所以我建议将其重命名为显示它与列表中的汽车有所不同,如果可以作为cars列表的成员传递,则删除。

PS 只要您的IDE可以通过智能感知检索其类型,您就可以将cars列表重命名为participantscompetitors

Upd。:基本上,如果需要,参数的名称应首先取决于函数的名称和第二个参数的类型。所以,我会选择Car GetSimilar(Car targetCar, IList<Car> cars)