Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions Tests/IPAddressTests/IPAddressTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
}
}
10 changes: 9 additions & 1 deletion nanoFramework.System.Net/IPAddress.cs
Original file line number Diff line number Diff line change
Expand Up @@ -168,7 +168,15 @@ public IPAddress(byte[] address)
/// <param name="a">The <see cref="IPAddress"/> to compare with <paramref name="b"/>.</param>
/// <param name="b">The <see cref="IPAddress"/> to compare with <paramref name="a"/>.</param>
/// <returns><see langword="true"/> if <paramref name="b"/> is equal to <paramref name="a"/>; otherwise, <see langword="false"/>.</returns>
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);
}

/// <summary>
/// Indicates whether two <see cref="IPAddress"/> objects are not equal.
Expand Down