@@ -74,7 +74,7 @@ namespace Org.SbeTool.Sbe.Dll
7474 /// </tbody>
7575 /// </table>
7676 /// </summary>
77- public class PrimitiveValue
77+ public sealed class PrimitiveValue
7878 {
7979 private enum Representation
8080 {
@@ -485,26 +485,21 @@ public override string ToString()
485485 /// <returns> equivalence of values </returns>
486486 public override bool Equals ( object value )
487487 {
488- if ( null != value && this . GetType ( ) . Equals ( value . GetType ( ) ) )
488+ if ( value is PrimitiveValue rhs && _representation == rhs . _representation )
489489 {
490- var rhs = ( PrimitiveValue ) value ;
491-
492- if ( _representation == rhs . _representation )
490+ switch ( _representation )
493491 {
494- switch ( _representation )
495- {
496- case Representation . Long :
497- return _longValue == rhs . _longValue ;
492+ case Representation . Long :
493+ return _longValue == rhs . _longValue ;
498494
499- case Representation . ULong :
500- return _unsignedLongValue == rhs . _unsignedLongValue ;
495+ case Representation . ULong :
496+ return _unsignedLongValue == rhs . _unsignedLongValue ;
501497
502- case Representation . Double :
503- return BitConverter . DoubleToInt64Bits ( _doubleValue ) == BitConverter . DoubleToInt64Bits ( rhs . _doubleValue ) ;
498+ case Representation . Double :
499+ return BitConverter . DoubleToInt64Bits ( _doubleValue ) == BitConverter . DoubleToInt64Bits ( rhs . _doubleValue ) ;
504500
505- case Representation . ByteArray :
506- return _byteArrayValue . SequenceEqual ( rhs . _byteArrayValue ) ;
507- }
501+ case Representation . ByteArray :
502+ return _byteArrayValue . SequenceEqual ( rhs . _byteArrayValue ) ;
508503 }
509504 }
510505
0 commit comments