Possible Duplicate:
Why does params behave like this?

If you write a method like this:

void TestMethod(params object[] args) { }

then if you call it like this: TestMethod() then the array will be empty.

and if you call it like this: TestMethod(null, null) then the array will be an array with two null values.

but why, when you call the method like this: TestMethod(null) will the array be null?

I would have expected the result to be an array with one null value.

I know about this C# - Is it possible to have null params? but does not explain why.

--Edit:

It's also interesting that TestMethod((object)null) is an array with one null value and TestMetod((object[])null) is a null array.

It's just a case where being explicit in your intentions, by casting null to your expected type is the right way to go.

c#
Edit
Report