带默认对象值的参数

时间:2016-05-15 20:15:44

标签: c# default-parameters

我有一个班级和职能

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

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

如何解决它?

1 个答案:

答案 0 :(得分:2)

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

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