案子
今天早上我重构了一些 Logging 方法,需要在普通数组中更改方法的“params”参数。因此,对该方法的调用必须使用数组参数进行更改。我希望方法调用尽可能少地改变,因为它是一种被大量使用的实用程序方法。
我以为我应该能够使用集合初始化程序来调用该方法,但它给了我一个编译错误。请参阅下面示例中的第二个调用。第三次调用也可以,但也会导致错误。
例子
void Main()
{
// This works.
object[] t1 = { 1, "A", 2d };
Test(t1);
// This does not work. Syntax error: Invalid expression term '{'.
Test({1, "A", 2d });
// This does not work. Syntax error: No best type found for implicitly-typed array.
Test(new[] { 1, "A", 2d });
// This works.
Test(new object[] { 1, "A", 2d });
}
void Test(object[] test)
{
Console.WriteLine(test);
}
问题
- 有什么方法可以在
Test()
不先初始化数组的情况下调用吗?