1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
using System;
namespace Mono.GetOptions
{
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property | AttributeTargets.Method)]
public class OptionAttribute : Attribute
{
public string ShortDescription;
public char ShortForm;
public string LongForm;
public int MaxOccurs; // negative means there is no limit
private void SetValues(
string shortDescription,
char shortForm,
string longForm,
int maxOccurs)
{
ShortDescription = shortDescription;
ShortForm = shortForm;
LongForm = longForm;
MaxOccurs = maxOccurs;
}
public OptionAttribute(string shortDescription)
{
SetValues(shortDescription, ' ', string.Empty, 0);
}
public OptionAttribute(string shortDescription, char shortForm)
{
SetValues(shortDescription, shortForm, string.Empty, 0);
}
public OptionAttribute(string shortDescription, char shortForm, string longForm)
{
SetValues(shortDescription, shortForm, longForm, 0);
}
public OptionAttribute(string shortDescription, string longForm)
{
SetValues(shortDescription, ' ', longForm, 0);
}
public OptionAttribute(int maxOccurs, string shortDescription)
{
SetValues(shortDescription, ' ', string.Empty, maxOccurs);
}
public OptionAttribute(int maxOccurs, string shortDescription, char shortForm)
{
SetValues(shortDescription, shortForm, string.Empty, maxOccurs);
}
public OptionAttribute(int maxOccurs, string shortDescription, char shortForm, string longForm)
{
SetValues(shortDescription, shortForm, longForm, maxOccurs);
}
public OptionAttribute(int maxOccurs, string shortDescription, string longForm)
{
SetValues(shortDescription, ' ', longForm, maxOccurs);
}
}
}
|