3 namespace Mono.GetOptions
6 [AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
7 public class OptionAttribute : Attribute
9 public string ShortDescription;
10 public char ShortForm;
11 public string LongForm;
12 public int MaxOccurs; // negative means there is no limit
14 private void SetValues(
15 string shortDescription,
20 ShortDescription = shortDescription;
21 ShortForm = shortForm;
23 MaxOccurs = maxOccurs;
26 public OptionAttribute(string shortDescription)
28 SetValues(shortDescription, ' ', string.Empty, 0);
31 public OptionAttribute(string shortDescription, char shortForm)
33 SetValues(shortDescription, shortForm, string.Empty, 0);
36 public OptionAttribute(string shortDescription, char shortForm, string longForm)
38 SetValues(shortDescription, shortForm, longForm, 0);
41 public OptionAttribute(string shortDescription, string longForm)
43 SetValues(shortDescription, ' ', longForm, 0);
46 public OptionAttribute(int maxOccurs, string shortDescription)
48 SetValues(shortDescription, ' ', string.Empty, maxOccurs);
51 public OptionAttribute(int maxOccurs, string shortDescription, char shortForm)
53 SetValues(shortDescription, shortForm, string.Empty, maxOccurs);
56 public OptionAttribute(int maxOccurs, string shortDescription, char shortForm, string longForm)
58 SetValues(shortDescription, shortForm, longForm, maxOccurs);
61 public OptionAttribute(int maxOccurs, string shortDescription, string longForm)
63 SetValues(shortDescription, ' ', longForm, maxOccurs);