string Test(string name, params string[] args);
string Test(string name, string str, params string[] args);今天看了就有这么一个疑问:当传两个string类型参数时哪个函数会被调用?用事实说话吧:
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Test("Jack"));//No.1
Console.WriteLine(Test("Jack", "Hi"));//No.2
Console.WriteLine(Test("Jack", "Hi", "How are you?"));//No.2
Console.ReadKey();
}
static string Test(string name, params string[] args)
{
return "No.1";
}
static string Test(string name, string str, params string[] args)
{
return "No.2";
}
}
}显然,后者的优先级比前者高,那前者的params参数就没有意义了,正确的函数定义:
string Test(string name);
string Test(string name, string str, params string[] args);
评论(0)
暂无评论。