class Test
{
public static void test(object obj)
{
Console.WriteLine("object");
}

public static void test(params object[] args)
{
Console.WriteLine("object[]");
}

static void Main(string[] args)
{
string[] ss = new string[] { "hoge", "2", "3" };
test(ss);
}
}

これを実行すると可変長引数のほうが呼ばれるのですが、何故こうなるのでしょうか?
同じ型の場合、引数を個別に指定したものと可変長にしたものとがあれば前者が優先されると思うのですが。
(試しにobjectの部分をstringに置き換えて実行すると前者が実行されました)