Ich habe eine Klasse und FunktionParameter mit Standardobjektwert
class A
{
A(int i = 0)
{
}
}
void f(A a = new A(10)) // ? default parameter value must be compiler-time constanct
{
}
Wie es zu umgehen?
Ich habe eine Klasse und FunktionParameter mit Standardobjektwert
class A
{
A(int i = 0)
{
}
}
void f(A a = new A(10)) // ? default parameter value must be compiler-time constanct
{
}
Wie es zu umgehen?
Sie müssten dies innerhalb der Methode tun und einen Kommentar eingeben, dass die Methode null akzeptiert und A(10)
als Standardwert verwendet.
void f(A a = null)
{
if(a == null)
a = new A(10);
}
@Slugart Das würde nicht funktionieren, da die Zuweisung nur durchgeführt werden muss, wenn das Objekt 'null' ist. Sie könnten 'a = a ?? neues A (10); 'aber es gibt keine Notwendigkeit. –
?? ist der Nullkoaleszenzoperator. Es gibt keine Notwendigkeit, aber es ist sauberer und prägnanter, nicht wahr? – Slugart
Wenn meine Antwort unten Ihr Problem gelöst hat, geben Sie dies bitte an. –