C#方法参数个数和类型相同,名称不同,可以实现重载吗?

比如说:

(1)public void add(int i){}

(2)public void add(int i,int j){}

(3)public void add(int a){}

(4)public void add(double i,int j){}

1和2算重载因为那个数不同。

2和4也算重载因为类型不同。

那1和3算不算重载?他们的名字不同??

这不能通过编译。因为1和3本质是一样的两个方法,参数的名称本质只是在方法内部的一个变量的标识,重载只与参数类型和参数个数有关。如果有多个参数,那么如果这些参数的类型不同就要考虑参数位置了。例如:

public void print(int a,String b) {}

public void print(String a, int b){}

也是方法的重载