jsakamoto / ipaddressrange

.NET Class Library for range of IP address, both IPv4 and IPv6.
Mozilla Public License 2.0
368 stars 71 forks source link

Begin and End property setter should re-create Operator instance. #69

Closed sudoudaisuke closed 3 years ago

sudoudaisuke commented 3 years ago

Hello. Begin and End property setter should re-create Operator instance. #68 Would you see this test code?

    [TestMethod]
    public void CtorTest_IPv4_BeginEndAddresses()
    {
        var range = new IPAddressRange(
            begin: IPAddress.Parse("192.168.0.0"),
            end: IPAddress.Parse("192.168.0.255"));
        range.Contains(IPAddress.Parse("192.168.0.10")).Is(true);
        range.Contains(IPAddress.Parse("192.169.0.10")).Is(false);
    }
    // error IPAddressRange 4.1.2
    [TestMethod]
    public void CtorTest_IPv4_BeginEndAddresses_ObjectInitializer()
    {
        var range = new IPAddressRange
        {
            Begin = IPAddress.Parse("192.168.0.0"),
            End = IPAddress.Parse("192.168.0.255")
        };
        range.Contains(IPAddress.Parse("192.168.0.10")).Is(true);
        range.Contains(IPAddress.Parse("192.169.0.10")).Is(false);
    }
jsakamoto commented 3 years ago

@sudoudaisuke Thank you for your contribution!

But I'm sorry, coincidentally, I resolved it too in my way during you are also doing that...!

Of course, your implementation is also very well!

However, I considered other invalid cases such as "Begin" is IPv4 and "End" is IPv6, so I decided that I take my solution.

Again, thank you for your effort!