Skip to content

Commit 812dcfb

Browse files
committed
Fix for equality operator when both left and right are null
1 parent 8fe2088 commit 812dcfb

File tree

6 files changed

+18
-3
lines changed

6 files changed

+18
-3
lines changed

UnitsNet.Tests/BaseDimensionsTests.cs

+5
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ public void EqualityOperatorsWorkAsExpected()
8080

8181
Assert.False(baseDimensions2 == null);
8282
Assert.False(null == baseDimensions2);
83+
84+
BaseDimensions nullBaseDimensions1 = null;
85+
BaseDimensions nullBaseDimensions2 = null;
86+
87+
Assert.True(nullBaseDimensions1 == nullBaseDimensions2);
8388
}
8489

8590
[Fact]

UnitsNet.Tests/BaseUnitsTests.cs

+5
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,11 @@ public void EqualityOperatorIsImplementedCorrectly()
102102

103103
Assert.False(baseUnits1 == null);
104104
Assert.False(null == baseUnits1);
105+
106+
BaseUnits nullBaseUnits1 = null;
107+
BaseUnits nullBaseUnits2 = null;
108+
109+
Assert.True(nullBaseUnits1 == nullBaseUnits2);
105110
}
106111

107112
[Fact]

UnitsNet.Tests/UnitSystemTests.cs

+5
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,11 @@ public void EqualityOperatorIsImplementedCorrectly()
119119

120120
Assert.False(unitSystem1 == null);
121121
Assert.False(null == unitSystem1);
122+
123+
UnitSystem nullUnitSystem1 = null;
124+
UnitSystem nullUnitSystem2 = null;
125+
126+
Assert.True(nullUnitSystem1 == nullUnitSystem2);
122127
}
123128

124129
[Fact]

UnitsNet/BaseDimensions.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public BaseDimensions Divide(BaseDimensions right)
127127
/// <returns>True if equal.</returns>
128128
public static bool operator ==(BaseDimensions left, BaseDimensions right)
129129
{
130-
return left?.Equals(right) == true;
130+
return left is null ? right is null : left.Equals(right);
131131
}
132132

133133
/// <summary>

UnitsNet/BaseUnits.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ public override int GetHashCode()
106106
/// <seealso cref="Equals(BaseUnits)"/>
107107
public static bool operator ==(BaseUnits left, BaseUnits right)
108108
{
109-
return left?.Equals(right) == true;
109+
return left is null ? right is null : left.Equals(right);
110110
}
111111

112112
/// <summary>

UnitsNet/UnitSystem.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ public bool Equals(UnitSystem other)
8989
/// <seealso cref="Equals(UnitSystem)"/>
9090
public static bool operator ==(UnitSystem left, UnitSystem right)
9191
{
92-
return left?.Equals(right) == true;
92+
return left is null ? right is null : left.Equals(right);
9393
}
9494

9595
/// <summary>

0 commit comments

Comments
 (0)