是否有C#方法的重载参数排序约定?

Dre*_*ane 11 c# coding-style overloading conventions

对于以下情况,C#(或任何支持方法重载的面向对象语言)中是否存在任何约定?

让我们说我有一个方法foo:

public void Foo(int a){//does stuff}
Run Code Online (Sandbox Code Playgroud)

但实际上我有3种方法foo:

public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}
Run Code Online (Sandbox Code Playgroud)

是否存在一个约定,指出参数的顺序是否在重载方法中很重要?注意第三种方法不是一个明显的逻辑进展(a,b,c).

del*_*xfe 19

就在这里.看看https://msdn.microsoft.com/en-us/library/ms229029(v=vs.110).aspx

在重载成员中的参数排序中应保持一致.具有相同名称的参数应出现在所有重载中的相同位置.

  • 此外,您应该仅为了向常用方法提供默认值而重载方法.否则,这些方法的相关性不足以具有相同的名称,并且应该给出不同的名称. (4认同)