From a1bc6f39b3efe5d817c60d78eaff3f4c2de720ea Mon Sep 17 00:00:00 2001 From: Rolf Bjarne Kvinge Date: Tue, 9 Jun 2020 17:19:52 +0200 Subject: [PATCH] [Xamarin.MacDev] Split IAppleSdkVersion.TryParse in two methods. (#73) Split IAppleSdkVersion.TryParse into two methods, one that outputs the parsed int array and one that outputs the actual IAppleSdkVersion. This way we can re-use the actual version validation by using the int array overload when we're not interested in the actual version output. --- Xamarin.MacDev/IAppleSdkVersion.cs | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/Xamarin.MacDev/IAppleSdkVersion.cs b/Xamarin.MacDev/IAppleSdkVersion.cs index 93a4b81..7113310 100644 --- a/Xamarin.MacDev/IAppleSdkVersion.cs +++ b/Xamarin.MacDev/IAppleSdkVersion.cs @@ -18,23 +18,36 @@ namespace Xamarin.MacDev { return v.Count > 0 ? v [v.Count - 1] : @this.GetUseDefault (); } - public static bool TryParse (string s, out T result) where T : IAppleSdkVersion, new() + public static bool TryParse (string s, out int[] result) { - result = new T (); - if (s == null) + if (s == null) { + result = null; return false; + } var vstr = s.Split ('.'); - var vint = new int [vstr.Length]; + result = new int [vstr.Length]; for (int j = 0; j < vstr.Length; j++) { int component; if (!int.TryParse (vstr [j], out component)) return false; - vint [j] = component; + result [j] = component; } + return true; + } + + public static bool TryParse (string s, out T result) where T : IAppleSdkVersion, new() + { + result = new T (); + if (s == null) + return false; + + if (!TryParse (s, out var vint)) + return false; + result.SetVersion (vint); return true; }