public static OptionDefinition <TSettings> Create <TPropertyValue>( string longForm, string?shortForm, Expression <Func <TSettings, TPropertyValue> > property, Conversion <TPropertyValue> conversion) { if (property is null) { throw new ArgumentNullException(nameof(property)); } if (conversion is null) { throw new ArgumentNullException(nameof(conversion)); } var longFormOptionName = OptionName.FromLongForm(longForm); OptionName?shortFormOptionName = default; if (!(shortForm is null)) { shortFormOptionName = OptionName.FromShortForm(shortForm); } var applicator = Converter <TPropertyValue> .CreateOptionConverter(longFormOptionName, shortFormOptionName, property, conversion); return(new OptionDefinition <TSettings>(longFormOptionName, shortFormOptionName, applicator)); }
public static SwitchDefinition <TSettings> Create( string longForm, string?shortForm, Action <TSettings> applicator) { if (applicator is null) { throw new ArgumentNullException(nameof(applicator)); } var longFormOptionName = OptionName.FromLongForm(longForm); OptionName?shortFormOptionName = default; if (!(shortForm is null)) { shortFormOptionName = OptionName.FromShortForm(shortForm); } return(new SwitchDefinition <TSettings>(longFormOptionName, shortFormOptionName, applicator)); }