在方法中排序参数有哪些约定?

时间:2008-10-16 14:40:15

标签: oop coding-style

一位同事和我正在讨论有关订购方法参数的最佳做法。我们的目标是在我们的组织中建立一个标准,通过为我们的方法提供共同的签名来提高可读性和生产力。我们只是为我们正在招聘的最近毕业生制定指导方针。

示例(始终传入userId以审核调用):

GetOrders(string userId,int customerId); GetOrders(string userId,int [] orderIds); GetCustomer(string userId,int customerId);

我的论点如下:

  1. 最常见的论点。
  2. 其余参数基于重要性
  3. 可选(可空)参数。
  4. 他的论点基本上是相反的。

    我不是在这里要求正确或错误的答案,也不是在讨论。我只想看看已经存在哪些标准。

    谢谢!

5 个答案:

答案 0 :(得分:6)

我会选择输入,输出,可选的顺序。

可选应该最后给我,因为大多数语言允许您为可选参数指定默认值,以避免必须包含它们。提供的是,它们必须是最后一个参数,否则你不能放弃它们。

这假设您不能拥有命名参数。如果你能拥有它们,我总是建议使用它们以保持清晰,订单变得没有实际意义。

答案 1 :(得分:4)

我尝试让所有使用类似参数的方法以相同的顺序使用它们。

对于单一方法的选择,我非常重视。可选项目最后。

答案 2 :(得分:3)

我喜欢按字母顺序按名称排列它们。可以更轻松地找到您寻找的那个。

我同意具有默认值的可选项似乎属于最后。在某些语言中,这是必需的。

当您重载方法时,我会从最常用的参数开始,最后得到使该方法版本唯一的一个。

public method foo (string name)
public method foo (string name, string city)
public method foo (string name, string city, string state)

答案 3 :(得分:1)

在C编程中流行的一个习惯用语是目标先行,所以strcpy(A,B);将B复制到A(很像“A = B;”将B复制到A)。

答案 4 :(得分:1)

命令事物也出现在其他情境中。

最简单的方法是在最后添加参数。