Runtime: double ๋˜๋Š” float ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๊ตฌ์กฐ์ฒด์˜ ๊ธฐ๋ณธ ํ•ด์‹œ ์ฝ”๋“œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 02์›” 24์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dotnet/runtime

์Šคํ”ผ์ปค:

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!"); ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  3 ๋Œ“๊ธ€

๊ตฌ์กฐ์ฒด์— ๋Œ€ํ•œ ๊ธฐ๋ณธ GetHashCode ๊ตฌํ˜„์€ throw new NotSupportedException("Tomato!"); ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

https://github.com/dotnet/coreclr/pull/13164 ์—์„œ ์ด ์‚ฌ๋ก€๋ฅผ ๋†“์ณค์Šต๋‹ˆ๋‹ค.

@jkotas ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์˜ ์ ์–ด๋„ object ํ•„๋“œ ๋ถ€๋ถ„์„ ์ด์‹ํ•˜๋„๋ก ์š”์ฒญํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? aspnet/Mvc#7673๊ณผ ๊ฐ™์€ ๊ณ ๊ฐ์ด ๋ณด๊ณ ํ•œ ๋‹ค์šด์ŠคํŠธ๋ฆผ ๋ฒ„๊ทธ๋ฅผ ๊ฐ์•ˆํ•  ๋•Œ ์ตœ์†Œํ•œ 2.0.x์—์„œ๋Š” ์ด๊ฒƒ์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

/cc @davidfowl @Eilon @Petermarcu

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰