Skip to content

Commit efdf372

Browse files
committed
Use unmanaged and Enum constraints.
1 parent 779cb2e commit efdf372

File tree

5 files changed

+10
-10
lines changed

5 files changed

+10
-10
lines changed

ReClass.NET/Memory/MemoryBuffer.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,14 +157,14 @@ public void ReadBytes(int offset, byte[] buffer)
157157
Array.Copy(data, offset, buffer, 0, buffer.Length);
158158
}
159159

160-
public T ReadObject<T>(IntPtr offset) where T : struct
160+
public T ReadObject<T>(IntPtr offset) where T : unmanaged
161161
{
162162
Contract.Requires(offset.ToInt32() >= 0);
163163

164164
return ReadObject<T>(offset.ToInt32());
165165
}
166166

167-
public T ReadObject<T>(int offset) where T : struct
167+
public T ReadObject<T>(int offset) where T : unmanaged
168168
{
169169
Contract.Requires(offset >= 0);
170170

ReClass.NET/Memory/RemoteProcess.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public byte[] ReadRemoteMemory(IntPtr address, int size)
206206
/// <typeparam name="T">Type of the value to read.</typeparam>
207207
/// <param name="address">The address to read from.</param>
208208
/// <returns>The remote object.</returns>
209-
public T ReadRemoteObject<T>(IntPtr address) where T : struct
209+
public T ReadRemoteObject<T>(IntPtr address) where T : unmanaged
210210
{
211211
var data = ReadRemoteMemory(address, Marshal.SizeOf<T>());
212212

@@ -569,7 +569,7 @@ public bool WriteRemoteMemory(IntPtr address, byte[] data)
569569
/// <param name="address">The address to write to.</param>
570570
/// <param name="value">The value to write.</param>
571571
/// <returns>True if it succeeds, false if it fails.</returns>
572-
public bool WriteRemoteMemory<T>(IntPtr address, T value) where T : struct
572+
public bool WriteRemoteMemory<T>(IntPtr address, T value) where T : unmanaged
573573
{
574574
var data = new byte[Marshal.SizeOf<T>()];
575575

ReClass.NET/ReClass.NET.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
<CodeContractsRuntimeCheckingLevel>Full</CodeContractsRuntimeCheckingLevel>
7171
<CodeContractsReferenceAssembly>%28none%29</CodeContractsReferenceAssembly>
7272
<CodeContractsAnalysisWarningLevel>3</CodeContractsAnalysisWarningLevel>
73+
<LangVersion>latest</LangVersion>
7374
</PropertyGroup>
7475
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
7576
<PlatformTarget>x86</PlatformTarget>

ReClass.NET/UI/EnumComboBox.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.ComponentModel;
34
using System.Diagnostics.Contracts;
45
using System.Linq;
56
using System.Windows.Forms;
67
using ReClassNET.Extensions;
7-
using ReClassNET.Util;
88

99
namespace ReClassNET.UI
1010
{
11-
public class EnumComboBox<TEnum> : ComboBox where TEnum : struct
11+
public class EnumComboBox<TEnum> : ComboBox where TEnum : Enum
1212
{
1313
#region Properties
1414

@@ -52,7 +52,7 @@ public class EnumComboBox<TEnum> : ComboBox where TEnum : struct
5252
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
5353
public new TEnum SelectedValue
5454
{
55-
get => ((EnumDescriptionDisplay<TEnum>)base.SelectedItem)?.Value ?? default(TEnum);
55+
get => ((EnumDescriptionDisplay<TEnum>)base.SelectedItem).Value;
5656
set => base.SelectedItem = base.Items.Cast<EnumDescriptionDisplay<TEnum>>().PredicateOrFirst(e => e.Value.Equals(value));
5757
}
5858

ReClass.NET/UI/EnumDescriptionDisplay.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
using System.Linq;
66
using System.Reflection;
77
using ReClassNET.Extensions;
8-
using ReClassNET.Util;
98

109
namespace ReClassNET.UI
1110
{
12-
public class EnumDescriptionDisplay<TEnum> where TEnum : struct
11+
public class EnumDescriptionDisplay<TEnum> where TEnum : Enum
1312
{
1413
public TEnum Value { get; internal set; }
1514
public string Description { get; internal set; }

0 commit comments

Comments
 (0)