From 65763a643f896aa43c950676bab64e6da80caaa6 Mon Sep 17 00:00:00 2001 From: Jacob Dufault Date: Mon, 22 Sep 2014 13:41:07 -0400 Subject: [PATCH] Simplify GetCtor logic --- OpenRA.Game/ObjectCreator.cs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/OpenRA.Game/ObjectCreator.cs b/OpenRA.Game/ObjectCreator.cs index a749f72503..038b7c1db0 100755 --- a/OpenRA.Game/ObjectCreator.cs +++ b/OpenRA.Game/ObjectCreator.cs @@ -78,15 +78,9 @@ namespace OpenRA { var flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance; var ctors = type.GetConstructors(flags).Where(x => x.HasAttribute()); - using (var e = ctors.GetEnumerator()) - { - if (!e.MoveNext()) - return null; - var ctor = e.Current; - if (!e.MoveNext()) - return ctor; - } - throw new InvalidOperationException("ObjectCreator: UseCtor on multiple constructors; invalid."); + if (ctors.Count() > 1) + throw new InvalidOperationException("ObjectCreator: UseCtor on multiple constructors; invalid."); + return ctors.FirstOrDefault(); } public object CreateBasic(Type type)