コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }