その優先がどうとか言ってる奴は無視ししろ

public static void test(params object[] args)
が内部的には
public static void test(object[] args)
なのだから

public static void test(object arg)
public static void test(object[] args)
で
test(new string[]{ "a", "b" });
を呼んだ時どっちが呼ばれるべきか

>>622で「string[]はobject[]型のほうが近いと思う」と自分で言ってるだろ
その直感の通りだ