index

 1     class Program
 2     {
 3 
 4         static void Main()
 5         {
 6             var pair = new Pair<int>(10,12);
 7 
 8             Console.WriteLine($"this is {pair.First} and {pair[PairItem.Second]} other {pair[0]}");
 9             Console.ReadKey();
10         }
11     }
12 
13     interface IPair<T>
14     {
15         T First { get; }
16         T Second { get; }
17         T this[PairItem index] { get; }
18     }
19 
20     internal enum PairItem
21     {
22         First,
23         Second
24     }
25 
26     internal struct Pair<T> : IPair<T>
27     {
28         public Pair(T first,T second)
29         {
30             First = first;
31             Second = second;
32         }
33 
34         public T this[PairItem index]
35         {
36             get
37             {
38                 switch (index)
39                 {
40                     case PairItem.First:
41                         return First;
42                     case PairItem.Second:
43                         return Second;
44                     default:
45                         throw new NotImplementedException();
46                 }
47             }
48             set
49             {
50                 switch (index)
51                 {
52                     case PairItem.First:
53                         First = value;
54                         break;
55                     case PairItem.Second:
56                         Second = value;
57                         break;
58                     default:
59                         throw new NotImplementedException();
60                 }
61             }
62         }
63 
64         public T First{ get; private set; }
65 
66         public T Second { get; private set; }
67     }
View Code

 

 

The point is this

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325239628&siteId=291194637