рд░реЗрдкреНрд░реЛ:
using System;
struct StructWithDoubleField
{
public double value;
}
class My {
static void Main() {
StructWithDoubleField s1;
s1.value = 0.0;
StructWithDoubleField s2;
s2.value = -0.0;
Console.WriteLine(s1.GetHashCode() == s2.GetHashCode() ? "PASSED" : "FAILED");
}
}
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ GetHashCode
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди throw new NotSupportedException("Tomato!");
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛: рдореБрд╕реНрдХрд░рд╛рд╣рдЯ:
https://github.com/dotnet/coreclr/pull/13164 рдЗрд╕ рдорд╛рдорд▓реЗ рд╕реЗ рдЪреВрдХ рдЧрдПред
@jkotas рдлрд┐рдХреНрд╕ рдХреЗ рдХрдо рд╕реЗ рдХрдо object
рдлрд╝реАрд▓реНрдб рд╣рд┐рд╕реНрд╕реЗ рдХреЛ рдкреИрдЪ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рд╣реИ? рдЧреНрд░рд╛рд╣рдХ-рд░рд┐рдкреЛрд░реНрдЯ рдХрд┐рдП рдЧрдП рдбрд╛рдЙрдирд╕реНрдЯреНрд░реАрдо рдмрдЧ рдЬреИрд╕реЗ aspnet/Mvc#7673 рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдХрдо рд╕реЗ рдХрдо 2.0.x рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
/cc @davidfowl @Eilon @Petermarcu
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ
GetHashCode
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиthrow new NotSupportedException("Tomato!");
рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛: рдореБрд╕реНрдХрд░рд╛рд╣рдЯ: