Есть ли какое-либо соглашение в С# (или любой объектно-ориентированный язык, поддерживающий перегрузку метода) для следующей ситуации?
Допустим, у меня есть метод foo:
public void Foo(int a){//does stuff}
Но на самом деле у меня есть 3 метода foo:
public void Foo(int a){}
public void Foo(int a, double b){}
public void Foo(float c, int a, double b){}
Существует ли соглашение, в котором указано, имеет ли значение порядок параметров в перегруженном методе? Обратите внимание, что третий метод не является очевидной логической прогрессией (a, b, c).