Actually, the params is just a syntactic sugar handled by the C# compiler, so that this: void Method(params string[] args) { /**/ } Method("one", "two", "three"); becomes this: void Method(params string[] args) { /**/ } Method(new string[] { "one", "two", "three" })