Quando rispondi a una domanda su Stack Overflow , la libreria sembrava avere un modo strano per specificare la configurazione, attraverso un Action
passato al costruttore:
public Parser(Action<ParserSettings> configuration)
{
if (configuration == null) throw new ArgumentNullException("configuration");
this.settings = new ParserSettings();
configuration(this.settings);
this.settings.Consumed = true;
}
internal Parser(ParserSettings settings)
{
this.settings = settings;
this.settings.Consumed = true;
}
Quindi per specificare le impostazioni fornite a Action<ParserSettings>
che modifica le impostazioni:
var parser = new Parser( s => { s.CaseSensitive = false; } );
Non capisco cosa questo modello compia. Qual è il vantaggio del passaggio di un delegato al costruttore invece del solo fatto che il codice del client viene creato e passa il ParserSettings
al costruttore?