昨日、.NET のバグと思われるものに遭遇しました。
IPAddress addr = IPAddress.Parse("fe80::1111:2222:abc%11"); // ScopeId is 11
string s1 = addr.ToString(); // I obviously see fe80::1111:2222:abc%11
addr.ScopeId = 0; // ScopeId is zero from now
string s2 = addr.ToString(); // I expect to see fe80::1111:2222:abc
変更後もs1
同じ内容なのはなぜですか?デバッガーの [ウォッチ] ウィンドウで、スコープの値が実際に変更されていることがわかります。ただし、内部文字列フィールドは影響しません。s2
ScopeId
確かに、さまざまな IPv6 アドレスとさまざまなスコープ ID でこれを試しましたが、動作は同じです。私は何を逃したのですか?