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

Oop 方法中的参数排序有哪些约定?,oop,coding-style,Oop,Coding Style,我和一位同事正在讨论有关排序方法参数的最佳实践。目标是在我们的组织中建立一个标准,通过给我们的方法提供通用的签名来提高可读性和生产率。我们只是为我们正在招聘的应届毕业生制定指导方针 示例(始终传入userId以审核调用): GetOrders(字符串userId,int customerId); GetOrders(字符串userId,int[]orderIds); GetCustomer(字符串userId,int customerId) 我的论点如下: 常见的参数是最左边的 剩下的论点是基于

我和一位同事正在讨论有关排序方法参数的最佳实践。目标是在我们的组织中建立一个标准,通过给我们的方法提供通用的签名来提高可读性和生产率。我们只是为我们正在招聘的应届毕业生制定指导方针

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

GetOrders(字符串userId,int customerId); GetOrders(字符串userId,int[]orderIds); GetCustomer(字符串userId,int customerId)

我的论点如下:

  • 常见的参数是最左边的
  • 剩下的论点是基于重要性的
  • 最后是可选(可为空)参数
  • 他的论点基本上是相反的

    我不是在这里要求一个正确或错误的答案,也不是讨论。我只是想看看已经有什么标准了


    谢谢

    我会选择输入、输出和可选的顺序

    Optional应该放在我的末尾,因为大多数语言允许您为可选参数指定默认值,以避免包含它们。其中的规定是,它们必须是最后一个论点,否则你不能放弃它们


    这是假设你不能有命名参数。如果你能得到它们,我总是建议你使用它们以保持清晰,而顺序也变得毫无意义。

    我喜欢按名字的字母顺序排列它们。让你更容易找到你要找的人

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

    当您有重载方法时,我将从最常用的参数开始,并以使此方法版本唯一的参数结束

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

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


    对于单一方法的选择,我根据重要性来选择。可选项最后。

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

    在其他上下文中也按顺序排列


    在末尾添加参数是最容易的。

    +1用于重载方法的建议。我不同意按字母顺序排列。是的,我对按字母顺序排列感觉不太好。您的偏好是什么?b复制使用相反的方式:void b复制(const void*s1,void*s2,size\u t n);