考虑到这段代码。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string[] strings = new string[] { "Test1", "Test2", "Test3" };
int[] ints = new int[] { 1, 2, 3, 4 };
Test(strings);
Test(ints);
}
public static void Test(params object[] objects)
{
}
}
}
这个页面 https://msdn.microsoft.com/fr-ca/library/w5zay9db.aspx
我希望 (params object[] objects) 是一个数组,其中第一个元素是一个 string[] 数组。但是当我调试时,我发现 (params object[] objects) 是 { "Test1", "Test2", "Test3" }。
然而,如果是 int[],我会得到一个以 int[] 为第一个元素的 object[]。
这是否属于未定义行为?这取决于.Net Framework版本/Mono版本吗?
int[]
来测试一下... - Dennis_E