Ho una domanda di stile su overloading di metodi / costruttori. Ho un costruttore che fa qualcosa di molto semplice, e quindi chiama un metodo con alcuni effetti collaterali. A volte però non voglio gli effetti collaterali, quindi ho creato un costruttore sovraccarico separato. Ho mostrato due versioni qui. La versione 1 è semplice: se passo qualsiasi bool poi TrickyFunction non verrà chiamato. Ma forse è confuso, perché il valore di no_tricks non influenza il comportamento (solo che no_tricks esiste). La versione 2 in realtà elabora no_tricks e prende la decisione di eseguire TrickyFunction in base a ciò.
Quale versione o altra versione è più stilisticamente "corretta?"
public foo MyFunction(string a)
{
variable = a
TrickyFunction(a)
}
#Version 1
public foo MyFunction(string a, bool no_tricks)
{
variable = a
}
#Version 2
public foo MyFunction(string a, bool no_tricks)
{
variable = a
if (notricks == true)
{
TrickyFunction(a)
}
}