Tag Equals()

[C#] GetHashCode() ไม่เท่ากับ Equals() นะ !!!

black and white piano keys

ช่วงนี้เห็น Rule นึงที่ SonarQube มันแจ้งเตือนมาครับ “Equals(Object)” and “GetHashCode()” should be overridden in pairs ตัว Message มันหมายความว่าอย่างไรกันนะ หลังจากลองดูคำอธิบายอันนี้จะเป็นในมุมของ Security ครับ เค้าตั้งสมมติฐานว่า ถ้า เอาง่ายๆ ถ้า A และ B เรียก Equals() แล้วได้ true เมื่อไปเรียก GetHashCode() ควรจะได้ค่าเท่ากันครับ ที่ใช้คำว่าควรจะ เพราะจริงๆต้องบอกว่าสอดคล้องกันไปในทางเดียวกันมากกว่า เพราะ อันนี้เป็นคำอธิบายในมุมของ Security นะครับ มาดูในของ…