diff --git a/anbs_cp/Classes/TypeConverter.cs b/anbs_cp/Classes/TypeConverter.cs index 1760edb..63ef01d 100644 --- a/anbs_cp/Classes/TypeConverter.cs +++ b/anbs_cp/Classes/TypeConverter.cs @@ -1,115 +1,165 @@ -namespace anbs_cp.Classes; +using System.Globalization; + +using Newtonsoft.Json; + +namespace anbs_cp.Classes; /// -/// Конвертер типов на манер Delphi +/// Конвертер типов на манер Delphi /// public static class TypeConverter { #region Конвертация числа в строку /// - /// Преобразование int в string + /// Преобразование в /// - /// Число - /// Строка - public static string IntToStr (int aInt) => aInt.ToString(); + /// Число + /// Значение в + public static string IntToStr (int value) => value.ToString(); /// - /// Преобразование uint в string + /// Преобразование в /// - /// Число - /// Строка - public static string IntToStr (uint aInt) => aInt.ToString(); + /// Число + /// Значение в + public static string IntToStr (uint value) => value.ToString(); /// - /// Преобразование long в string + /// Преобразование в /// - /// Число - /// Строка - public static string IntToStr (long aInt) => aInt.ToString(); + /// Число + /// Значение в + public static string IntToStr (long value) => value.ToString(); /// - /// Преобразование ulong в string + /// Преобразование в /// - /// Число - /// Строка - public static string IntToStr (ulong aInt) => aInt.ToString(); + /// Число + /// Значение в + public static string IntToStr (ulong value) => value.ToString(); /// - /// Преобразование byte в string + /// Преобразование в /// - /// Число - /// Строка - public static string IntToStr (byte aInt) => aInt.ToString(); + /// Число + /// Значение в + public static string IntToStr (byte value) => value.ToString(); + + /// + /// Преобразование в + /// + /// Число + /// Значение в + public static string DecimalToStr (decimal value) => value.ToString(CultureInfo.InvariantCulture); + + /// + /// Преобразование в + /// + /// Число + /// Значение в + public static string DoubleToStr (double value) => value.ToString(CultureInfo.InvariantCulture); + + /// + /// Преобразование в + /// + /// Значение правда/ложь + /// Значение в + public static string BoolToStr (bool value) => value.ToString(); + + /// + /// Преобразование в + /// + /// Тип + /// Значение типа + /// Значение в + public static string TypeToStr (T value) => JsonConvert.SerializeObject(value); #endregion #region Конвертация строки в число /// - /// Преобразование строки в число + /// Преобразование в /// - /// Строка - /// Значение по умолчанию (по умолчанию, 0) - /// Число - public static int StrToInt (string aStr, int aDefault = 0) - { - if (!int.TryParse(aStr, out int result)) - result = aDefault; - return result; - } + /// Строка + /// Значение по умолчанию + /// Значение в + public static int StrToInt (string value, int defaultValue = 0) => + int.TryParse(value, out int result) ? result : defaultValue; /// - /// Преобразование строки в число + /// Преобразование в /// - /// Строка - /// Значение по умолчанию (по умолчанию, 0) - /// Число - public static uint StrToUInt (string aStr, uint aDefault = 0) - { - if (!uint.TryParse(aStr, out uint result)) - result = aDefault; - return result; - } + /// Строка + /// Значение по умолчанию + /// Значение в + public static uint StrToUInt (string value, uint defaultValue = 0) => + uint.TryParse(value, out uint result) ? result : defaultValue; /// - /// Преобразование строки в число + /// Преобразование в /// - /// Строка - /// Значение по умолчанию (по умолчанию, 0) - /// Число - public static long StrToInt64 (string aStr, long aDefault = 0) - { - if (!long.TryParse(aStr, out long result)) - result = aDefault; - return result; - } + /// Строка + /// Значение по умолчанию + /// Значение в + public static long StrToInt64 (string value, long defaultValue = 0) => + long.TryParse(value, out long result) ? result : defaultValue; /// - /// Преобразование строки в число + /// Преобразование в /// - /// Строка - /// Значение по умолчанию (по умолчанию, 0) - /// Число - public static ulong StrToUInt64 (string aStr, ulong aDefault = 0) - { - if (!ulong.TryParse(aStr, out ulong result)) - result = aDefault; - return result; - } + /// Строка + /// Значение по умолчанию + /// Значение в + public static ulong StrToUInt64 (string value, ulong defaultValue = 0) => + ulong.TryParse(value, out ulong result) ? result : defaultValue; /// - /// Преобразование строки в число + /// Преобразование в /// - /// Строка - /// Значение по умолчанию (по умолчанию, 0) - /// Число - public static byte StrToByte (string aStr, byte aDefault = 0) - { - if (!byte.TryParse(aStr, out byte result)) - result = aDefault; - return result; - } + /// Строка + /// Значение по умолчанию + /// Значение в + public static byte StrToByte (string value, byte defaultValue = byte.MinValue) => + byte.TryParse(value, out byte result) ? result : defaultValue; + + /// + /// Преобразование в + /// + /// Строка + /// Значение по умолчанию () + /// Значение в + public static decimal StrToDecimal (string value, decimal defaultValue = decimal.Zero) => + decimal.TryParse(value, out decimal result) ? result : defaultValue; + + /// + /// Преобразование в + /// + /// Строка + /// Значение по умолчанию + /// Значение в + public static double StrToDouble (string value, double defaultValue = 0) => + double.TryParse(value, out double result) ? result : defaultValue; + + /// + /// Преобразование в + /// + /// Строка + /// Значение по умолчанию + /// Значение в + public static bool StrToBool (string value, bool defaultValue = false) => + bool.TryParse(value, out bool result) ? result : defaultValue; + + /// + /// Преобразование в тип + /// + /// Тип + /// Строка + /// Значение по умолчанию + /// Значение в + public static T StrToType(string value, T defaultValue) => + JsonConvert.DeserializeObject(value) ?? defaultValue; #endregion } \ No newline at end of file diff --git a/anbs_cp/anbs_cp.csproj b/anbs_cp/anbs_cp.csproj index 9037109..b1d3421 100644 --- a/anbs_cp/anbs_cp.csproj +++ b/anbs_cp/anbs_cp.csproj @@ -2,7 +2,7 @@ net7.0 - 2023.0602 + 2023.811.0 Александр Бабаев Набор компонентов ANB Software Библиотека полезных методов языка C# @@ -38,9 +38,13 @@ - + - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + +