5
Sto provando a creare una classe in cui l'utente può modificare le variabili membro per modificare gli argomenti predefiniti delle sue funzioni membro.C'è un modo per avere argomenti predefiniti dinamici?
class Class
{
public int Member;
public void Method(int Argument = Member)
{
// This compiles fine, until I try to actually use
// the method elsewhere in code!
// "Error: need 'this' to access member Member"
}
}
La mia soluzione finora è stata quella di utilizzare numeri magici, che ovviamente non è l'ideale.
public void Method(int Argument = 123)
{
int RealArgument;
if (Argument == 123) RealArgument = Member;
else RealArgument = Argument;
}
C'è un modo migliore, o sono bloccato con questa soluzione "hack"?
Questo può essere poco pratico per molti argomenti, ma i mixin possono aiutare a generare automaticamente il codice. – Maxpm
L'uso di modelli variadici e un'attenta denominazione può consentire di ottenere quell'effetto solo con la funzione di base e un modello di wrapper singolo. – BCS