diff --git a/PKHeX.Core/MysteryGifts/DataMysteryGift.cs b/PKHeX.Core/MysteryGifts/DataMysteryGift.cs
index a91ffe936..b2624a2b2 100644
--- a/PKHeX.Core/MysteryGifts/DataMysteryGift.cs
+++ b/PKHeX.Core/MysteryGifts/DataMysteryGift.cs
@@ -31,8 +31,7 @@ public override MysteryGift Clone()
{
byte[] data = (byte[])Data.Clone();
var result = GetMysteryGift(data);
- if (result == null)
- throw new ArgumentException(nameof(MysteryGift));
+ ArgumentNullException.ThrowIfNull(result);
return result;
}
diff --git a/PKHeX.Core/PKM/Util/EntityBlank.cs b/PKHeX.Core/PKM/Util/EntityBlank.cs
index 4a356b248..cf6248c4e 100644
--- a/PKHeX.Core/PKM/Util/EntityBlank.cs
+++ b/PKHeX.Core/PKM/Util/EntityBlank.cs
@@ -16,9 +16,12 @@ public static class EntityBlank
/// New instance of a blank object.
public static PKM GetBlank(Type type)
{
+ // Not all derived types have a parameter-less constructor, so find the minimal constructor and use that.
var constructors = type.GetTypeInfo().DeclaredConstructors.Where(z => !z.IsStatic);
var argCount = constructors.Min(z => z.GetParameters().Length);
- return (PKM)(Activator.CreateInstance(type, new object[argCount]) ?? throw new ArgumentException(null, nameof(type)));
+ var pk = Activator.CreateInstance(type, new object[argCount]) as PKM;
+ ArgumentNullException.ThrowIfNull(pk);
+ return pk;
}
public static PKM GetBlank(int gen, GameVersion ver) => gen switch
diff --git a/PKHeX.WinForms/Controls/SAV Editor/BitmapAnimator.cs b/PKHeX.WinForms/Controls/SAV Editor/BitmapAnimator.cs
index f7428b5f4..a44e5b949 100644
--- a/PKHeX.WinForms/Controls/SAV Editor/BitmapAnimator.cs
+++ b/PKHeX.WinForms/Controls/SAV Editor/BitmapAnimator.cs
@@ -42,8 +42,7 @@ public void Stop()
}
// reset logic
- if (GlowCache == null)
- throw new ArgumentNullException(nameof(GlowCache));
+ ArgumentNullException.ThrowIfNull(GlowCache);
GlowCounter = 0;
for (int i = 0; i < GlowCache.Length; i++)
GlowCache[i] = null;
@@ -90,8 +89,7 @@ private void TimerElapsed(object? sender, ElapsedEventArgs? elapsedEventArgs)
private Image GetFrame(int frameIndex)
{
var cache = GlowCache;
- if (cache == null)
- throw new NullReferenceException(nameof(GlowCache));
+ ArgumentNullException.ThrowIfNull(cache);
var frame = cache[frameIndex];
if (frame != null)
return frame;
@@ -99,8 +97,7 @@ private Image GetFrame(int frameIndex)
var elapsedFraction = (double)frameIndex / GlowInterval;
var frameColor = GetFrameColor(elapsedFraction);
- if (GlowData == null)
- throw new NullReferenceException(nameof(GlowData));
+ ArgumentNullException.ThrowIfNull(GlowData);
var frameData = (byte[])GlowData.Clone();
ImageUtil.ChangeAllColorTo(frameData, frameColor);
diff --git a/PKHeX.WinForms/Subforms/SAV_Encounters.cs b/PKHeX.WinForms/Subforms/SAV_Encounters.cs
index 1ddfa8f6a..d29bb6be5 100644
--- a/PKHeX.WinForms/Subforms/SAV_Encounters.cs
+++ b/PKHeX.WinForms/Subforms/SAV_Encounters.cs
@@ -334,11 +334,7 @@ public bool Equals(T? x, T? y)
return RuntimeHelpers.GetHashCode(x).Equals(RuntimeHelpers.GetHashCode(y));
}
- public int GetHashCode(T obj)
- {
- if (obj == null) throw new ArgumentNullException(nameof(obj));
- return RuntimeHelpers.GetHashCode(obj);
- }
+ public int GetHashCode(T obj) => RuntimeHelpers.GetHashCode(obj);
}
private IEnumerable GetEncounters(ushort species, byte form, ushort[] moves, PKM pk, IReadOnlyList vers)
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokedex4.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokedex4.cs
index 19d7bbfd9..28eec0783 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokedex4.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen4/SAV_Pokedex4.cs
@@ -287,8 +287,7 @@ private void ToggleSeen(object sender, EventArgs e)
}
var item = lb.SelectedItem;
- if (item is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(item);
lb.Items.RemoveAt(lb.SelectedIndex);
var dest = lb == LB_Gender ? LB_NGender : LB_Gender;
dest.Items.Add(item);
@@ -319,8 +318,7 @@ private void MoveGender(object sender, EventArgs e)
return;
var item = lb.SelectedItem;
- if (item is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(item);
lb.Items.Remove(item);
lb.Items.Insert(newIndex, item);
lb.SelectedIndex = newIndex;
@@ -338,8 +336,7 @@ private void ToggleForm(object sender, EventArgs e)
}
var item = lb.SelectedItem;
- if (item is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(item);
lb.Items.RemoveAt(lb.SelectedIndex);
var dest = lb == LB_Form ? LB_NForm : LB_Form;
dest.Items.Add(item);
@@ -370,8 +367,7 @@ private void MoveForm(object sender, EventArgs e)
return;
var item = lb.SelectedItem;
- if (item is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(item);
lb.Items.Remove(item);
lb.Items.Insert(newIndex, item);
lb.SelectedIndex = newIndex;
diff --git a/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs b/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
index 6f5c7eab1..35b04d24f 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/Gen6/SAV_SecretBase.cs
@@ -396,12 +396,11 @@ private void B_Import_Click(object sender, EventArgs e)
var data = File.ReadAllBytes(path);
var obj = SecretBase6.Read(data);
- if (obj is null) // shouldn't happen, we already size-check above.
- throw new NullReferenceException();
+ // shouldn't happen, we already size-check above.
+ ArgumentNullException.ThrowIfNull(obj);
var sb = CurrentBase;
- if (sb is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(sb);
ResetLoadNew();
sb.Load(obj);
@@ -413,8 +412,7 @@ private void B_Import_Click(object sender, EventArgs e)
private void B_Export_Click(object sender, EventArgs e)
{
var sb = CurrentBase;
- if (sb is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(sb);
SaveCurrent(sb);
var tr = sb.TrainerName;
@@ -441,8 +439,7 @@ private void B_FDelete_Click(object sender, EventArgs e)
int index = LB_Bases.SelectedIndex - 1;
var bdata = CurrentBase;
- if (bdata is null)
- throw new NullReferenceException();
+ ArgumentNullException.ThrowIfNull(bdata);
string BaseTrainer = bdata.TrainerName;
if (string.IsNullOrEmpty(BaseTrainer))
diff --git a/PKHeX.WinForms/Subforms/Save Editors/SAV_Inventory.cs b/PKHeX.WinForms/Subforms/Save Editors/SAV_Inventory.cs
index 25395d666..31580d208 100644
--- a/PKHeX.WinForms/Subforms/Save Editors/SAV_Inventory.cs
+++ b/PKHeX.WinForms/Subforms/Save Editors/SAV_Inventory.cs
@@ -362,9 +362,6 @@ private void ModifyAllItems(object sender, EventArgs e)
private void ModifyPouch(int pouch, Action func)
{
- if (func == null)
- throw new ArgumentNullException(nameof(func));
-
var dgv = GetGrid(pouch);
var p = Pouches[pouch];
SetBag(dgv, p); // save current
diff --git a/PKHeX.WinForms/Util/WinFormsUtil.cs b/PKHeX.WinForms/Util/WinFormsUtil.cs
index ecc3a63d2..25fb7aa7e 100644
--- a/PKHeX.WinForms/Util/WinFormsUtil.cs
+++ b/PKHeX.WinForms/Util/WinFormsUtil.cs
@@ -363,9 +363,7 @@ public static bool ExportSAVDialog(SaveFile sav, int currentBox = 0)
sav.CurrentBox = currentBox;
var path = sfd.FileName;
- if (path == null)
- throw new NullReferenceException(nameof(sfd.FileName));
-
+ ArgumentNullException.ThrowIfNull(path);
ExportSAV(sav, path);
return true;
}
diff --git a/Tests/PKHeX.Core.Tests/Util/TestUtil.cs b/Tests/PKHeX.Core.Tests/Util/TestUtil.cs
index 45544976f..ffdbb2b20 100644
--- a/Tests/PKHeX.Core.Tests/Util/TestUtil.cs
+++ b/Tests/PKHeX.Core.Tests/Util/TestUtil.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.IO;
namespace PKHeX.Core.Tests;
@@ -11,8 +11,7 @@ public static string GetRepoPath()
while (!folder.EndsWith(nameof(Tests)))
{
var dir = Directory.GetParent(folder);
- if (dir == null)
- throw new ArgumentNullException(nameof(dir));
+ ArgumentNullException.ThrowIfNull(dir);
folder = dir.FullName;
}
return folder;