class D
{
public void foo(int z, int x)
{
Console.WriteLine("foo with two parameters");
}
public void foo(params int[] z)
{
Console.WriteLine("foo with two params parameter");
}
}
class Program
{
public static void Main()
{
D obj = new D();
obj.foo(10,20);
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时,将执行该方法foo(int x, int y)而不是foo(params int[] z). 为什么是这样?
C# 编译器将始终尝试选择与参数最匹配的方法。在您的情况下,foo(int, int)重载与您的输入参数完全匹配,而foo(params int)重载是较弱的匹配。
如果您有兴趣,这里是 C# 中方法重载的一个很好的概述:http://csharpindepth.com/Articles/General/Overloading.aspx
| 归档时间: |
|
| 查看次数: |
2003 次 |
| 最近记录: |