This is an automated email from the ASF dual-hosted git repository. nightowl888 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/lucenenet.git
commit f420576a2d578992885515fdb124fe8e69282971 Author: Shad Storhaug <[email protected]> AuthorDate: Mon Jun 29 13:35:53 2020 +0700 Lucene.Net.Util (BytesRef + CharsRef): Implemented IEquatable<T> --- src/Lucene.Net/Util/BytesRef.cs | 15 ++++++++------- src/Lucene.Net/Util/CharsRef.cs | 5 ++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/Lucene.Net/Util/BytesRef.cs b/src/Lucene.Net/Util/BytesRef.cs index f44b8d4..7697ecd 100644 --- a/src/Lucene.Net/Util/BytesRef.cs +++ b/src/Lucene.Net/Util/BytesRef.cs @@ -40,7 +40,7 @@ namespace Lucene.Net.Util #if FEATURE_SERIALIZABLE [Serializable] #endif - public sealed class BytesRef : IComparable<BytesRef>, IComparable // LUCENENET specific - implemented IComparable for FieldComparator + public sealed class BytesRef : IComparable<BytesRef>, IComparable, IEquatable<BytesRef> // LUCENENET specific - implemented IComparable for FieldComparator, IEquatable<BytesRef> #if FEATURE_CLONEABLE , System.ICloneable #endif @@ -210,16 +210,17 @@ namespace Lucene.Net.Util public override bool Equals(object other) { if (other == null) - { return false; - } - if (other is BytesRef) - { - return this.BytesEquals((BytesRef)other); - } + + if (other is BytesRef otherBytes) + return this.BytesEquals(otherBytes); + return false; } + bool IEquatable<BytesRef>.Equals(BytesRef other) // LUCENENET specific - implemented IEquatable<BytesRef> + => BytesEquals(other); + /// <summary> /// Interprets stored bytes as UTF8 bytes, returning the /// resulting <see cref="string"/>. diff --git a/src/Lucene.Net/Util/CharsRef.cs b/src/Lucene.Net/Util/CharsRef.cs index a5768ce..c84296c 100644 --- a/src/Lucene.Net/Util/CharsRef.cs +++ b/src/Lucene.Net/Util/CharsRef.cs @@ -34,7 +34,7 @@ namespace Lucene.Net.Util #if FEATURE_SERIALIZABLE [Serializable] #endif - public sealed class CharsRef : IComparable<CharsRef>, ICharSequence + public sealed class CharsRef : IComparable<CharsRef>, ICharSequence, IEquatable<CharsRef> // LUCENENET specific - implemented IEquatable<CharsRef> #if FEATURE_CLONEABLE , System.ICloneable #endif @@ -149,6 +149,9 @@ namespace Lucene.Net.Util return false; } + bool IEquatable<CharsRef>.Equals(CharsRef other) // LUCENENET specific - implemented IEquatable<CharsRef> + => CharsEquals(other); + public bool CharsEquals(CharsRef other) { if (Length == other.Length)
