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;