Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 64b9479

Browse filesBrowse files
committed
Use switch expressions.
1 parent ead9f20 commit 64b9479
Copy full SHA for 64b9479

File tree

Expand file treeCollapse file tree

6 files changed

+184
-382
lines changed
Filter options
Expand file treeCollapse file tree

6 files changed

+184
-382
lines changed

‎ReClass.NET/MemoryScanner/Comparer/ByteMemoryComparer.cs

Copy file name to clipboardExpand all lines: ReClass.NET/MemoryScanner/Comparer/ByteMemoryComparer.cs
+27-59Lines changed: 27 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,18 @@ public bool Compare(byte[] data, int index, out ScanResult result)
2323
return CompareInternal(
2424
data,
2525
index,
26-
value =>
26+
value => CompareType switch
2727
{
28-
switch (CompareType)
29-
{
30-
case ScanCompareType.Equal:
31-
return value == Value1;
32-
case ScanCompareType.NotEqual:
33-
return value != Value1;
34-
case ScanCompareType.GreaterThan:
35-
return value > Value1;
36-
case ScanCompareType.GreaterThanOrEqual:
37-
return value >= Value1;
38-
case ScanCompareType.LessThan:
39-
return value < Value1;
40-
case ScanCompareType.LessThanOrEqual:
41-
return value <= Value1;
42-
case ScanCompareType.Between:
43-
return Value1 < value && value < Value2;
44-
case ScanCompareType.BetweenOrEqual:
45-
return Value1 <= value && value <= Value2;
46-
case ScanCompareType.Unknown:
47-
return true;
48-
default:
49-
throw new InvalidCompareTypeException(CompareType);
50-
}
28+
ScanCompareType.Equal => value == Value1,
29+
ScanCompareType.NotEqual => value != Value1,
30+
ScanCompareType.GreaterThan => value > Value1,
31+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
32+
ScanCompareType.LessThan => value < Value1,
33+
ScanCompareType.LessThanOrEqual => value <= Value1,
34+
ScanCompareType.Between => Value1 < value && value < Value2,
35+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
36+
ScanCompareType.Unknown => true,
37+
_ => throw new InvalidCompareTypeException(CompareType)
5138
},
5239
out result
5340
);
@@ -67,42 +54,23 @@ public bool Compare(byte[] data, int index, ByteScanResult previous, out ScanRes
6754
return CompareInternal(
6855
data,
6956
index,
70-
value =>
57+
value => CompareType switch
7158
{
72-
switch (CompareType)
73-
{
74-
case ScanCompareType.Equal:
75-
return value == Value1;
76-
case ScanCompareType.NotEqual:
77-
return value != Value1;
78-
case ScanCompareType.GreaterThan:
79-
return value > Value1;
80-
case ScanCompareType.GreaterThanOrEqual:
81-
return value >= Value1;
82-
case ScanCompareType.LessThan:
83-
return value < Value1;
84-
case ScanCompareType.LessThanOrEqual:
85-
return value <= Value1;
86-
case ScanCompareType.Between:
87-
return Value1 < value && value < Value2;
88-
case ScanCompareType.BetweenOrEqual:
89-
return Value1 <= value && value <= Value2;
90-
91-
case ScanCompareType.Changed:
92-
return value != previous.Value;
93-
case ScanCompareType.NotChanged:
94-
return value == previous.Value;
95-
case ScanCompareType.Increased:
96-
return value > previous.Value;
97-
case ScanCompareType.IncreasedOrEqual:
98-
return value >= previous.Value;
99-
case ScanCompareType.Decreased:
100-
return value < previous.Value;
101-
case ScanCompareType.DecreasedOrEqual:
102-
return value <= previous.Value;
103-
default:
104-
throw new InvalidCompareTypeException(CompareType);
105-
}
59+
ScanCompareType.Equal => value == Value1,
60+
ScanCompareType.NotEqual => value != Value1,
61+
ScanCompareType.GreaterThan => value > Value1,
62+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
63+
ScanCompareType.LessThan => value < Value1,
64+
ScanCompareType.LessThanOrEqual => value <= Value1,
65+
ScanCompareType.Between => Value1 < value && value < Value2,
66+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
67+
ScanCompareType.Changed => value != previous.Value,
68+
ScanCompareType.NotChanged => value == previous.Value,
69+
ScanCompareType.Increased => value > previous.Value,
70+
ScanCompareType.IncreasedOrEqual => value >= previous.Value,
71+
ScanCompareType.Decreased => value < previous.Value,
72+
ScanCompareType.DecreasedOrEqual => value <= previous.Value,
73+
_ => throw new InvalidCompareTypeException(CompareType)
10674
},
10775
out result
10876
);

‎ReClass.NET/MemoryScanner/Comparer/DoubleMemoryComparer.cs

Copy file name to clipboardExpand all lines: ReClass.NET/MemoryScanner/Comparer/DoubleMemoryComparer.cs
+38-73Lines changed: 38 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -31,53 +31,35 @@ public DoubleMemoryComparer(ScanCompareType compareType, ScanRoundMode roundType
3131
maxValue = value1 + 1.0 / factor;
3232
}
3333

34-
private bool CheckRoundedEquality(double value)
34+
private bool CheckRoundedEquality(double value) =>
35+
RoundType switch
3536
{
36-
switch (RoundType)
37-
{
38-
case ScanRoundMode.Strict:
39-
return Value1.IsNearlyEqual(Math.Round(value, significantDigits, MidpointRounding.AwayFromZero), 0.0001);
40-
case ScanRoundMode.Normal:
41-
return minValue < value && value < maxValue;
42-
case ScanRoundMode.Truncate:
43-
return (long)value == (long)Value1;
44-
default:
45-
throw new ArgumentOutOfRangeException();
46-
}
47-
}
37+
ScanRoundMode.Strict => Value1.IsNearlyEqual(Math.Round(value, significantDigits, MidpointRounding.AwayFromZero), 0.0001),
38+
ScanRoundMode.Normal => minValue < value && value < maxValue,
39+
ScanRoundMode.Truncate => (long)value == (long)Value1,
40+
_ => throw new ArgumentOutOfRangeException()
41+
};
4842

4943
public bool Compare(byte[] data, int index, out ScanResult result)
5044
{
5145
result = null;
5246

5347
var value = BitConverter.ToDouble(data, index);
5448

55-
bool IsMatch()
49+
bool IsMatch() =>
50+
CompareType switch
5651
{
57-
switch (CompareType)
58-
{
59-
case ScanCompareType.Equal:
60-
return CheckRoundedEquality(value);
61-
case ScanCompareType.NotEqual:
62-
return !CheckRoundedEquality(value);
63-
case ScanCompareType.GreaterThan:
64-
return value > Value1;
65-
case ScanCompareType.GreaterThanOrEqual:
66-
return value >= Value1;
67-
case ScanCompareType.LessThan:
68-
return value < Value1;
69-
case ScanCompareType.LessThanOrEqual:
70-
return value <= Value1;
71-
case ScanCompareType.Between:
72-
return Value1 < value && value < Value2;
73-
case ScanCompareType.BetweenOrEqual:
74-
return Value1 <= value && value <= Value2;
75-
case ScanCompareType.Unknown:
76-
return true;
77-
default:
78-
throw new InvalidCompareTypeException(CompareType);
79-
}
80-
}
52+
ScanCompareType.Equal => CheckRoundedEquality(value),
53+
ScanCompareType.NotEqual => !CheckRoundedEquality(value),
54+
ScanCompareType.GreaterThan => value > Value1,
55+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
56+
ScanCompareType.LessThan => value < Value1,
57+
ScanCompareType.LessThanOrEqual => value <= Value1,
58+
ScanCompareType.Between => Value1 < value && value < Value2,
59+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
60+
ScanCompareType.Unknown => true,
61+
_ => throw new InvalidCompareTypeException(CompareType)
62+
};
8163

8264
if (!IsMatch())
8365
{
@@ -104,42 +86,25 @@ public bool Compare(byte[] data, int index, DoubleScanResult previous, out ScanR
10486

10587
var value = BitConverter.ToDouble(data, index);
10688

107-
bool IsMatch()
89+
bool IsMatch() =>
90+
CompareType switch
10891
{
109-
switch (CompareType)
110-
{
111-
case ScanCompareType.Equal:
112-
return CheckRoundedEquality(value);
113-
case ScanCompareType.NotEqual:
114-
return !CheckRoundedEquality(value);
115-
case ScanCompareType.Changed:
116-
return value != previous.Value;
117-
case ScanCompareType.NotChanged:
118-
return value == previous.Value;
119-
case ScanCompareType.GreaterThan:
120-
return value > Value1;
121-
case ScanCompareType.GreaterThanOrEqual:
122-
return value >= Value1;
123-
case ScanCompareType.Increased:
124-
return value > previous.Value;
125-
case ScanCompareType.IncreasedOrEqual:
126-
return value >= previous.Value;
127-
case ScanCompareType.LessThan:
128-
return value < Value1;
129-
case ScanCompareType.LessThanOrEqual:
130-
return value <= Value1;
131-
case ScanCompareType.Decreased:
132-
return value < previous.Value;
133-
case ScanCompareType.DecreasedOrEqual:
134-
return value <= previous.Value;
135-
case ScanCompareType.Between:
136-
return Value1 < value && value < Value2;
137-
case ScanCompareType.BetweenOrEqual:
138-
return Value1 <= value && value <= Value2;
139-
default:
140-
throw new InvalidCompareTypeException(CompareType);
141-
}
142-
}
92+
ScanCompareType.Equal => CheckRoundedEquality(value),
93+
ScanCompareType.NotEqual => !CheckRoundedEquality(value),
94+
ScanCompareType.Changed => value != previous.Value,
95+
ScanCompareType.NotChanged => value == previous.Value,
96+
ScanCompareType.GreaterThan => value > Value1,
97+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
98+
ScanCompareType.Increased => value > previous.Value,
99+
ScanCompareType.IncreasedOrEqual => value >= previous.Value,
100+
ScanCompareType.LessThan => value < Value1,
101+
ScanCompareType.LessThanOrEqual => value <= Value1,
102+
ScanCompareType.Decreased => value < previous.Value,
103+
ScanCompareType.DecreasedOrEqual => value <= previous.Value,
104+
ScanCompareType.Between => Value1 < value && value < Value2,
105+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
106+
_ => throw new InvalidCompareTypeException(CompareType)
107+
};
143108

144109
if (!IsMatch())
145110
{

‎ReClass.NET/MemoryScanner/Comparer/FloatMemoryComparer.cs

Copy file name to clipboardExpand all lines: ReClass.NET/MemoryScanner/Comparer/FloatMemoryComparer.cs
+38-73Lines changed: 38 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -31,53 +31,35 @@ public FloatMemoryComparer(ScanCompareType compareType, ScanRoundMode roundType,
3131
maxValue = value1 + 1.0f / factor;
3232
}
3333

34-
private bool CheckRoundedEquality(float value)
34+
private bool CheckRoundedEquality(float value) =>
35+
RoundType switch
3536
{
36-
switch (RoundType)
37-
{
38-
case ScanRoundMode.Strict:
39-
return Value1.IsNearlyEqual((float)Math.Round(value, significantDigits, MidpointRounding.AwayFromZero), 0.0001f);
40-
case ScanRoundMode.Normal:
41-
return minValue < value && value < maxValue;
42-
case ScanRoundMode.Truncate:
43-
return (int)value == (int)Value1;
44-
default:
45-
throw new ArgumentOutOfRangeException();
46-
}
47-
}
37+
ScanRoundMode.Strict => Value1.IsNearlyEqual((float)Math.Round(value, significantDigits, MidpointRounding.AwayFromZero), 0.0001f),
38+
ScanRoundMode.Normal => minValue < value && value < maxValue,
39+
ScanRoundMode.Truncate => (int)value == (int)Value1,
40+
_ => throw new ArgumentOutOfRangeException()
41+
};
4842

4943
public bool Compare(byte[] data, int index, out ScanResult result)
5044
{
5145
result = null;
5246

5347
var value = BitConverter.ToSingle(data, index);
5448

55-
bool IsMatch()
49+
bool IsMatch() =>
50+
CompareType switch
5651
{
57-
switch (CompareType)
58-
{
59-
case ScanCompareType.Equal:
60-
return CheckRoundedEquality(value);
61-
case ScanCompareType.NotEqual:
62-
return !CheckRoundedEquality(value);
63-
case ScanCompareType.GreaterThan:
64-
return value > Value1;
65-
case ScanCompareType.GreaterThanOrEqual:
66-
return value >= Value1;
67-
case ScanCompareType.LessThan:
68-
return value < Value1;
69-
case ScanCompareType.LessThanOrEqual:
70-
return value <= Value1;
71-
case ScanCompareType.Between:
72-
return Value1 < value && value < Value2;
73-
case ScanCompareType.BetweenOrEqual:
74-
return Value1 <= value && value <= Value2;
75-
case ScanCompareType.Unknown:
76-
return true;
77-
default:
78-
throw new InvalidCompareTypeException(CompareType);
79-
}
80-
}
52+
ScanCompareType.Equal => CheckRoundedEquality(value),
53+
ScanCompareType.NotEqual => !CheckRoundedEquality(value),
54+
ScanCompareType.GreaterThan => value > Value1,
55+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
56+
ScanCompareType.LessThan => value < Value1,
57+
ScanCompareType.LessThanOrEqual => value <= Value1,
58+
ScanCompareType.Between => Value1 < value && value < Value2,
59+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
60+
ScanCompareType.Unknown => true,
61+
_ => throw new InvalidCompareTypeException(CompareType)
62+
};
8163

8264
if (!IsMatch())
8365
{
@@ -104,42 +86,25 @@ public bool Compare(byte[] data, int index, FloatScanResult previous, out ScanRe
10486

10587
var value = BitConverter.ToSingle(data, index);
10688

107-
bool IsMatch()
89+
bool IsMatch() =>
90+
CompareType switch
10891
{
109-
switch (CompareType)
110-
{
111-
case ScanCompareType.Equal:
112-
return CheckRoundedEquality(value);
113-
case ScanCompareType.NotEqual:
114-
return !CheckRoundedEquality(value);
115-
case ScanCompareType.Changed:
116-
return value != previous.Value;
117-
case ScanCompareType.NotChanged:
118-
return value == previous.Value;
119-
case ScanCompareType.GreaterThan:
120-
return value > Value1;
121-
case ScanCompareType.GreaterThanOrEqual:
122-
return value >= Value1;
123-
case ScanCompareType.Increased:
124-
return value > previous.Value;
125-
case ScanCompareType.IncreasedOrEqual:
126-
return value >= previous.Value;
127-
case ScanCompareType.LessThan:
128-
return value < Value1;
129-
case ScanCompareType.LessThanOrEqual:
130-
return value <= Value1;
131-
case ScanCompareType.Decreased:
132-
return value < previous.Value;
133-
case ScanCompareType.DecreasedOrEqual:
134-
return value <= previous.Value;
135-
case ScanCompareType.Between:
136-
return Value1 < value && value < Value2;
137-
case ScanCompareType.BetweenOrEqual:
138-
return Value1 <= value && value <= Value2;
139-
default:
140-
throw new InvalidCompareTypeException(CompareType);
141-
}
142-
}
92+
ScanCompareType.Equal => CheckRoundedEquality(value),
93+
ScanCompareType.NotEqual => !CheckRoundedEquality(value),
94+
ScanCompareType.Changed => value != previous.Value,
95+
ScanCompareType.NotChanged => value == previous.Value,
96+
ScanCompareType.GreaterThan => value > Value1,
97+
ScanCompareType.GreaterThanOrEqual => value >= Value1,
98+
ScanCompareType.Increased => value > previous.Value,
99+
ScanCompareType.IncreasedOrEqual => value >= previous.Value,
100+
ScanCompareType.LessThan => value < Value1,
101+
ScanCompareType.LessThanOrEqual => value <= Value1,
102+
ScanCompareType.Decreased => value < previous.Value,
103+
ScanCompareType.DecreasedOrEqual => value <= previous.Value,
104+
ScanCompareType.Between => Value1 < value && value < Value2,
105+
ScanCompareType.BetweenOrEqual => Value1 <= value && value <= Value2,
106+
_ => throw new InvalidCompareTypeException(CompareType)
107+
};
143108

144109
if (!IsMatch())
145110
{

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.