diff --git a/Tests/IPAddressTests/IPAddressTests.cs b/Tests/IPAddressTests/IPAddressTests.cs
index dcbec9e..49f6b45 100644
--- a/Tests/IPAddressTests/IPAddressTests.cs
+++ b/Tests/IPAddressTests/IPAddressTests.cs
@@ -307,18 +307,26 @@ public void Equality_Tests()
{
var privateAddress = IPAddress.Parse("192.168.0.1");
var publicAddress = IPAddress.Parse("1.1.1.1");
+ IPAddress defaultAddress = default;
+ IPAddress nullAddress = null;
+
+ // Is
+ Assert.IsTrue(nullAddress is null, "nullAddress is null");
// Equal
Assert.AreEqual(privateAddress, IPAddress.Parse("192.168.0.1"));
Assert.AreEqual(publicAddress, IPAddress.Parse("1.1.1.1"));
Assert.IsTrue(privateAddress == new IPAddress(new byte[] { 192, 168, 0, 1 }), "192.168.0.1 == 192.168.0.1");
Assert.IsTrue(publicAddress == new IPAddress(new byte[] { 1, 1, 1, 1 }), "1.1.1.1 == 1.1.1.1");
+ Assert.IsTrue(defaultAddress == default, "default == default");
+ Assert.IsTrue(nullAddress == null, "nullAddress == null");
// Not Equal
Assert.AreNotEqual(privateAddress, IPAddress.Parse("1.1.1.1"));
Assert.AreNotEqual(publicAddress, IPAddress.Parse("192.168.0.1"));
Assert.IsTrue(privateAddress != new IPAddress(new byte[] { 192, 168, 0, 2 }), "192.168.0.1 == 192.168.0.2");
Assert.IsTrue(publicAddress != new IPAddress(new byte[] { 1, 1, 1, 2 }), "1.1.1.1 == 1.1.1.2");
+ Assert.IsTrue((IPAddress) null != privateAddress, "(IPAddress) null != privateAddress");
}
}
}
diff --git a/nanoFramework.System.Net/IPAddress.cs b/nanoFramework.System.Net/IPAddress.cs
index c698710..6b351f0 100644
--- a/nanoFramework.System.Net/IPAddress.cs
+++ b/nanoFramework.System.Net/IPAddress.cs
@@ -168,7 +168,15 @@ public IPAddress(byte[] address)
/// The to compare with .
/// The to compare with .
/// if is equal to ; otherwise, .
- public static bool operator ==(IPAddress a, IPAddress b) => a is not null && a.Equals(b);
+ public static bool operator ==(IPAddress a, IPAddress b)
+ {
+ if (a is null && b is null)
+ {
+ return true;
+ }
+
+ return a is not null && a.Equals(b);
+ }
///
/// Indicates whether two objects are not equal.