forked from dotnet/docs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathProgram.cs
132 lines (111 loc) · 3.73 KB
/
Program.cs
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
using System;
using System.Linq;
using IndexersSamples.Common;
using IndexersSamples.SampleOne;
using IndexersSamples.SampleTwo;
using IndexersSamples.SampleThree;
using IndexersSamples.SampleFour;
namespace IndexersSamples
{
public class Program
{
public static void Main(string[] args)
{
SampleOne();
SampleTwo(args);
SampleThree();
SampleFour();
}
private static void SampleOne()
{
// Create a store:
var store = new DataSamples(500000);
// Access:
var measure = store[3];
Console.WriteLine(measure.HiTemp);
// Update:
store[80] = measure;
Console.WriteLine(store[80].HiTemp);
// Load a new page:
var measure2 = store[2020];
Console.WriteLine(measure2.LoTemp);
// Load another new page:
store[3547] = measure2;
Console.WriteLine(store[3547].LoTemp);
// Make sure pages rotate in and out of memory:
for (int j = 5; j < 500000; j += 1100)
{
var item = store[j];
Console.WriteLine(item.AirPressure);
}
// Check for valid arguments:
try
{
var item = store[2000000];
Console.WriteLine("Didn't check bounds");
}
catch (IndexOutOfRangeException)
{
// empty catch block. Above code should fail.
}
}
private static void SampleTwo(string[] args)
{
var argThings = new ArgsActions();
argThings.SetOption("-a", () => Console.WriteLine("-a option selected"));
argThings.SetOption("-e", () => Console.WriteLine("-e option selected"));
var processor = new ArgsProcessor(argThings);
processor.Process(args);
}
private static void SampleThree()
{
var generator = new Mandelbrot(256);
var item = generator[0, 0];
Console.WriteLine(item);
item = generator[5, 5];
Console.WriteLine(item);
item = generator[0.30, 0.0001];
Console.WriteLine(item);
}
private static void SampleFour()
{
var data = new HistoricalWeatherData();
data["Chicago", new DateTime(1970, 6, 6)] = new Measurements
{
HiTemp = 75,
LoTemp = 58,
AirPressure = 30.2
};
var item = data["Chicago", new DateTime(1970, 6, 6)];
Console.WriteLine(item.HiTemp);
item = data["Chicago", new DateTime(1970, 6, 6, 12, 30, 2)];
Console.WriteLine(item.LoTemp);
data["Chicago", new DateTime(1970, 6, 6)] = new Measurements
{
HiTemp = 85,
LoTemp = 38,
AirPressure = 30.2
};
item = data["Chicago", new DateTime(1970, 6, 6)];
Console.WriteLine(item.HiTemp);
item = data["Chicago", new DateTime(1970, 6, 6, 12, 30, 2)];
Console.WriteLine(item.LoTemp);
try
{
item = data["New York", new DateTime(1980, 5, 12)];
Console.WriteLine("Didn't get expected exception");
}
catch (ArgumentOutOfRangeException)
{
}
try
{
item = data["Chicago", new DateTime(1980, 5, 12)];
Console.WriteLine("Didn't get expected exception");
}
catch (ArgumentOutOfRangeException)
{
}
}
}
}