2016-05-15 95 views
0

我有一个类和函数参数使用默认对象值

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

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

如何解决办法呢?

+0

如果我的答案在下面解决了您的问题,请指出。 –

回答

2

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

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

null合并运算符 Slugart

+0

@Slugart这是行不通的,因为只有在对象为null时才需要进行赋值。你可以使用'a = a ??新的A(10);'但没有必要。 –

+0

??是空合并运算符。没有必要,但它更整洁,更简洁,对吗? – Slugart