具有默认对象值的参数

parameter with default object value

我有一个class和函数

class A
{
    A(int i = 0)
    {
    }
}

void f(A a = new A(10)) // ? default parameter value must be compiler-time constanct
{
}

如何解决?

您需要在方法内部执行此操作并提供一条注释,说明该方法接受 null 并使用 A(10) 作为默认值。

void f(A a = null)
{
    if(a == null)
        a = new A(10);
}