namespace ArgumentsToolkit; /// /// Атрибут для описания параметра командной строки. /// Позволяет задать имя, короткое имя, описание, обязательность и значение по умолчанию. /// [AttributeUsage(AttributeTargets.Property)] public class OptionAttribute : Attribute { /// /// Поолное название для --Name /// public string Name { get; } /// /// Краткое название для -ShortName /// public string? ShortName { get; } /// /// Описание параметра /// public string? Description { get; } /// /// Обязательный параметр /// public bool Required { get; } /// /// Значение по умолчанию /// public object? DefaultValue { get; } public OptionAttribute( string name, string? shortName = null, string? description = null, bool required = false, object? defaultValue = null ) { Name = name ?? throw new ArgumentNullException(nameof(name)); ShortName = shortName; Description = description; Required = required; DefaultValue = defaultValue; } }