diff --git a/csharp/Platform.Ranges.Tests/Platform.Ranges.Tests.csproj b/csharp/Platform.Ranges.Tests/Platform.Ranges.Tests.csproj index f008b88..d3dc36e 100644 --- a/csharp/Platform.Ranges.Tests/Platform.Ranges.Tests.csproj +++ b/csharp/Platform.Ranges.Tests/Platform.Ranges.Tests.csproj @@ -28,5 +28,5 @@ - + diff --git a/csharp/Platform.Ranges/Range[T].cs b/csharp/Platform.Ranges/Range[T].cs index 6a13fd2..8ab7a8a 100644 --- a/csharp/Platform.Ranges/Range[T].cs +++ b/csharp/Platform.Ranges/Range[T].cs @@ -10,8 +10,8 @@ namespace Platform.Ranges /// Представляет диапазон между минимальным и максимальным значениями. /// /// - /// Based on the question at StackOverflow. - /// Основано на вопросе в StackOverflow. + /// Based on the question at StackOverflow. + /// Основано на вопросе в StackOverflow. /// public struct Range : IEquatable> { @@ -19,22 +19,25 @@ public struct Range : IEquatable> private static readonly EqualityComparer _equalityComparer = EqualityComparer.Default; /// - /// Returns minimum value of the range. - /// Возвращает минимальное значение диапазона. + /// A read-only field that represents a minimum value of the range. + /// Поле для чтения, которое представляет минимальное значение диапазона. /// public readonly T Minimum; /// - /// Returns maximum value of the range. - /// Возвращает максимальное значение диапазона. + /// A read-only field that represents a maximum value of the range. + /// оле для чтения, которое представляет максимальное значение диапазона. /// public readonly T Maximum; /// - /// Initializes a new instance of the Range class. - /// Инициализирует новый экземпляр класса Range. + /// Initializes a new instance of the structure with a single specified value as minimum and maximum values. + /// Инициализирует новый экземпляр структуры с одним указанным значением в качестве минимального и максимального значений. /// - /// Single value for both Minimum and Maximum fields.Одно значение для полей Minimum и Maximum. + /// + /// A single value for the both and . + /// Одно значение для и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public Range(T minimumAndMaximum) { @@ -43,12 +46,21 @@ public Range(T minimumAndMaximum) } /// - /// Initializes a new instance of the Range class. - /// Инициализирует новый экземпляр класса Range. + /// Initializes a new instance of the structure with the specified minimum and maximum values. + /// Инициализирует новый экземпляр структуры с указанными минимальным и максимальным значениями. /// - /// The minimum value of the range.Минимальное значение диапазона. - /// The maximum value of the range.Максимальное значение диапазона. - /// Thrown when the maximum is less than the minimum.Выбрасывается, когда максимум меньше минимума. + /// + /// A minimum value of the . + /// Минимальное значение . + /// + /// + /// A maximum value of the . + /// Максимальное значение . + /// + /// + /// The is less than the . + /// меньше . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public Range(T minimum, T maximum) { @@ -58,89 +70,144 @@ public Range(T minimum, T maximum) } /// - /// Presents the Range in readable format. - /// Представляет диапазон в удобном для чтения формате. + /// Returns a string representation of the current struct. + /// Возвращает строковое представление текущей структуры . /// - /// String representation of the Range.Строковое представление диапазона. + /// + /// A string representation of the current struct. + /// Строковое представление текущей структуры . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public override string ToString() => $"[{Minimum}..{Maximum}]"; /// - /// Determines if the provided value is inside the range. - /// Определяет, находится ли указанное значение внутри диапазона. + /// Determines whether the current struct contains the . + /// Определяет, содержится ли в текущей структуре . /// - /// The value to test.Значение для проверки. - /// True if the value is inside Range, else false.True, если значение находится внутри диапазона, иначе false. + /// + /// A value to test for inclusion in the struct. + /// Значение для проверки его присутствия в структуре . + /// + /// + /// A value that determines whether the struct contains the . + /// Значение типа , определяющее, содержится ли в структуре . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool Contains(T value) => _comparer.Compare(Minimum, value) <= 0 && _comparer.Compare(Maximum, value) >= 0; /// - /// Determines if another range is inside the bounds of this range. - /// Определяет, находится ли другой диапазон внутри границ этого диапазона. + /// Determines whether the struct contains the . + /// Определяет, содержится ли в структуре . /// - /// The child range to test.Дочерний диапазон для проверки. - /// True if range is inside, else false.True, если диапазон находится внутри, иначе false. + /// + /// A struct to test for inclusion in the current struct. + /// Структура , для проверки включённости в текущей структуре . + /// + /// + /// A value that determines whether the current struct contains the . + /// Значение типа , определяющее, содержится ли в текущей структуре . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool Contains(Range range) => Contains(range.Minimum) && Contains(range.Maximum); /// - /// Determines whether the current range is equal to another range. - /// Определяет, равен ли текущий диапазон другому диапазону. + /// Determines whether the current struct and are equal. + /// Определяет, равны ли текущая структура и . /// - /// A range to compare with this range.Диапазон для сравнения с этим диапазоном. - /// True if the current range is equal to the other range; otherwise, false.True, если текущий диапазон равен другому диапазону; иначе false. + /// + /// A struct to compare with the current struct. + /// Структура для сравнения с текущей структурой. + /// + /// + /// A value that determines whether the current struct and are equal. + /// Значение типа , определяющее, равны ли текущая структура и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public bool Equals(Range other) => _equalityComparer.Equals(Minimum, other.Minimum) && _equalityComparer.Equals(Maximum, other.Maximum); /// - /// Creates a new struct initialized with as and as . - /// Создает новую структуру , инициализированную с помощью как и как . + /// Initializes a new struct with the and values of the . + /// Инициализирует новую структуру , с значениями и из . /// - /// The range of .Диапазон значений . + /// + /// A struct to initialize a tuple with the and values. + /// Структура для инициализации кортежа со значениями и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static implicit operator ValueTuple(Range range) => (range.Minimum, range.Maximum); /// - /// Creates a new struct initialized with as and as . - /// Создает новую структуру , инициализированную с помощью как и как . + /// Initializes a new struct using items of the : the first item as the and the second item as the . + /// Инициализирует новую структуру , используя элементы : первый для и второй для . /// - /// The tuple.Кортеж. + /// + /// A tuple of the and values. + /// Кортеж со значениями и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static implicit operator Range(ValueTuple tuple) => new Range(tuple.Item1, tuple.Item2); /// - /// Determines whether the current range is equal to another object. - /// Определяет, равен ли текущий диапазон другому объекту. + /// Determines whether the current struct and are equal. + /// Определяет, равны ли текущая структура и . /// - /// An object to compare with this range.Объект для сравнения с этим диапазоном. - /// True if the current range is equal to the other object; otherwise, false.True, если текущий диапазон равен другому объекту; иначе false. + /// + /// An object to compare with the . + /// Объект для сравнения с . + /// + /// + /// A value that determines whether the current struct and are equal. + /// Значение типа определяющее, равны ли текущая структура и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public override bool Equals(object obj) => obj is Range range ? Equals(range) : false; /// - /// Calculates the hash code for the current instance. + /// Calculates a hash code for the current struct. + /// Вычисляет хеш код для структуры . /// - /// The hash code for the current instance. + /// + /// A hash code for the current struct. + /// Хеш код для текущей структуры . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public override int GetHashCode() => (Minimum, Maximum).GetHashCode(); /// - /// Determines if the specified range is equal to the current range. - /// Определяет, равен ли указанный диапазон текущему диапазону. + /// Determines if the and ranges are equal. + /// Определяет, равны ли диапазоны и . /// - /// The current range.Текущий диапазон. - /// A range to compare with this range.Диапазон для сравнения с этим диапазоном. - /// True if the current range is equal to the other range; otherwise, false.True, если текущий диапазон равен другому диапазону; иначе false. + /// + /// A struct to compare with the . + /// Структура для сравнения с . + /// + /// + /// A struct instance to compare with the . + /// Структура для сравнения с . + /// + /// + /// A value that determines whether the and ranges are equal. + /// Значение типа , определяющее, равны ли диапазоны и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool operator ==(Range left, Range right) => left.Equals(right); /// - /// Determines if the specified range is not equal to the current range. - /// Определяет, не равен ли указанный диапазон текущему диапазону. + /// Determines if the and ranges are not equal. + /// Определяет, не равны ли диапазоны и . /// - /// The current range.Текущий диапазон. - /// A range to compare with this range.Диапазон для сравнения с этим диапазоном. - /// True if the current range is not equal to the other range; otherwise, false.True, если текущий диапазон не равен другому диапазону; иначе false. + /// + /// A struct to compare with the . + /// Структура для сравнения с . + /// + /// + /// A struct to compare with the . + /// Структура для сравнения с . + /// + /// + /// A value that determines whether the and ranges are not equal. + /// Значение типа , определяющее, не равны ли диапазоны и . + /// [MethodImpl(MethodImplOptions.AggressiveInlining)] public static bool operator !=(Range left, Range right) => !(left == right); }