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.