diff --git a/DesktopToast/Helper/OsVersion.cs b/DesktopToast/Helper/OsVersion.cs index ec8b74f..8f783c9 100644 --- a/DesktopToast/Helper/OsVersion.cs +++ b/DesktopToast/Helper/OsVersion.cs @@ -17,16 +17,15 @@ public static bool IsEightOrNewer { get { - if (!_isEightOrNewer.HasValue) - { - var ver = GetOsVersionByWmi(); - _isEightOrNewer = (ver != null) && (((6 == ver.Major) && (2 <= ver.Minor)) || (7 <= ver.Major)); - } - return _isEightOrNewer.Value; } } - private static bool? _isEightOrNewer; + private static readonly Lazy _isEightOrNewer = new Lazy(GetIsEightOrNewer); + + private static bool GetIsEightOrNewer() + { + return (Ver != null) && (((6 == Ver.Major) && (2 <= Ver.Minor)) || (7 <= Ver.Major)); + } /// /// Whether OS is Windows 10 or newer @@ -36,19 +35,30 @@ public static bool IsTenOrNewer { get { - if (!_isTenOrNewer.HasValue) - { - var ver = GetOsVersionByWmi(); - _isTenOrNewer = (ver != null) && (10 <= ver.Major); - } - return _isTenOrNewer.Value; } } - private static bool? _isTenOrNewer; + private static readonly Lazy _isTenOrNewer = new Lazy(GetIsTenOrNewer); + + private static bool GetIsTenOrNewer() + { + return (Ver != null) && (10 <= Ver.Major); + } #region Helper + /// + /// OS version. + /// + private static Version Ver + { + get + { + return _ver.Value; + } + } + private static readonly Lazy _ver = new Lazy(GetOsVersionByWmi); + /// /// Get OS version. ///