| File: System\Drawing\CharacterRange.cs | Web Access |
| Project: src\winforms\src\System.Drawing.Common\src\System.Drawing.Common.csproj (System.Drawing.Common) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Runtime.InteropServices; namespace System.Drawing; [StructLayout(LayoutKind.Sequential)] public struct CharacterRange : IEquatable<CharacterRange> { private int _first; private int _length; /// <summary>Initializes a new instance of the <see cref='CharacterRange'/> class with the specified coordinates.</summary> public CharacterRange(int First, int Length) { _first = First; _length = Length; } /// <summary>Gets the First character position of this <see cref='CharacterRange'/>.</summary> public int First { readonly get => _first; set => _first = value; } /// <summary>Gets the Length of this <see cref='CharacterRange'/>.</summary> public int Length { readonly get => _length; set => _length = value; } public override readonly bool Equals([NotNullWhen(true)] object? obj) => obj is CharacterRange other && Equals(other); /// <summary>Indicates whether the current instance is equal to another instance of the same type.</summary> /// <param name="other">An instance to compare with this instance.</param> /// <returns>true if the current instance is equal to the other instance; otherwise, false.</returns> public readonly bool Equals(CharacterRange other) => First == other.First && Length == other.Length; public static bool operator ==(CharacterRange cr1, CharacterRange cr2) => cr1.Equals(cr2); public static bool operator !=(CharacterRange cr1, CharacterRange cr2) => !cr1.Equals(cr2); public override readonly int GetHashCode() => HashCode.Combine(First, Length); }