This commit is contained in:
Alexander
2023-06-02 10:42:15 +03:00
parent ef329af61a
commit 042a2257bf
4 changed files with 118 additions and 8 deletions

View File

@@ -0,0 +1,51 @@
namespace anbs_cp.Structs;
/// <summary>
/// Пара ключ-значение
/// </summary>
/// <typeparam name="TK">Тип ключа</typeparam>
/// <typeparam name="TV">Тип значения</typeparam>
public struct KeyValue<TK, TV>
{
#region Конструкторы
/// <summary>
/// Конструктор по умолчанию
/// </summary>
public KeyValue ()
{
Key = default;
Value = default;
}
/// <summary>
/// Конструктор со значениями
/// </summary>
/// <param name="key">Ключ</param>
/// <param name="value">Значение</param>
public KeyValue (TK key, TV value)
{
Key = key;
Value = value;
}
#endregion
#region Свойства
/// <summary>
/// Ключ
/// </summary>
public TK? Key { get; set; }
/// <summary>
/// Значение
/// </summary>
public TV? Value { get; set; }
#endregion
#region Методы
/// <summary>
/// Получает ключ-значение по умолчанию
/// </summary>
/// <returns>Ключ-значение по умолчанию</returns>
public static KeyValue<TK, TV> GetDefault() => new();
#endregion
}

View File

@@ -0,0 +1,61 @@
namespace anbs_cp.Structs;
/// <summary>
/// Двумерный размер
/// </summary>
public struct TwoDimSize
{
#region Приватные поля
/// <summary>
/// Длина (приватное)
/// </summary>
private int _pWidth;
/// <summary>
/// Высота (приватное)
/// </summary>
private int _pHeight;
#endregion
#region Конструкторы
/// <summary>
/// Конструктор по умолчанию
/// </summary>
public TwoDimSize ()
{
Width = 0;
Height = 0;
}
/// <summary>
/// Конструктор
/// </summary>
/// <param name="width">Длина</param>
/// <param name="height">Высота</param>
public TwoDimSize (int width, int height)
{
Width = width;
Height = height;
}
#endregion
#region Свойства
/// <summary>
/// Длина
/// </summary>
public int Width
{
readonly get => _pWidth;
set => _pWidth = value < 0 ? 0 : value;
}
/// <summary>
/// Высота
/// </summary>
public int Height
{
readonly get => _pHeight;
set => _pHeight = value < 0 ? 0 : value;
}
#endregion
}