我有两个重载的方法,一个期望接受对象类型的参数,另一个期望接受泛型参数列表。我试图理解在何时调用哪个函数。我传递了字符串对象,它调用了泛型参数方法。
class Program
{
static void Main(string[] args)
{
string s = "string";
Invoke(s);
Console.ReadLine();
}
static void Invoke(object s)
{
Console.WriteLine("Object param invoked");
}
static void Invoke<T>(params T[] values)
{
Console.WriteLine("Params method invoked");
}
}
输出结果为:“Params方法被调用”。
但我不确定为什么总是调用这个方法。我还尝试传递int参数,但params方法再次被调用。如果有人能为我解释一下,谢谢。
对象
时会发生什么? - Zohar PeledInvoke<string>(string value)
。 - Cleptusobject s = "string"; Invoke(s);
可以实现此功能。 - user47589