如果你写这样的方法:
void TestMethod(params object[] args)
{
}
然后如果你这样称它:TestMethod()那么数组将为空。
如果你这样称它:TestMethod(null,null)那么数组将是一个有两个空值的数组。
但为什么,当你调用这样的方法时:TestMethod(null)数组是否为null?
我原本期望结果是一个具有一个空值的数组。
我知道这个C# - Is it possible to have null params?,但没有解释原因。
- 编辑:
TestMethod((object)null)是一个具有一个空值的数组也很有趣 和TestMetod((object [])null)是一个空数组。
只是通过将null转换为您期望的类型来明确您的意图是正确的方法。