{"id":10893,"date":"2024-03-14T12:58:35","date_gmt":"2024-03-14T12:58:35","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/"},"modified":"2025-08-04T05:11:48","modified_gmt":"2025-08-04T05:11:48","slug":"how-is-the-equals-method-used-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/","title":{"rendered":"C# Equals Method Explained"},"content":{"rendered":"<p>In C#, the Equals method is used to compare if two objects are equal. This method is inherited from the Object class, so all C# objects have the Equals method.<\/p>\n<p>When we use the Equals method on an object, we are actually comparing whether the references of two objects are the same. If the references of two objects are the same (pointing to the same memory address), then they are equal. However, if the references of two objects are different, even if their content is the same, the Equals method will return false.<\/p>\n<p>If we want to compare the content of two objects for equality, we usually need to override the Equals method to compare the content of the objects. Additionally, we typically need to override the GetHashCode method to ensure that objects with equal content return the same hash code.<\/p>\n<p>For example, we can rewrite the Equals method as follows:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-function\"><span class=\"hljs-keyword\">public<\/span> <span class=\"hljs-keyword\">override<\/span> <span class=\"hljs-built_in\">bool<\/span> <span class=\"hljs-title\">Equals<\/span>(<span class=\"hljs-params\"><span class=\"hljs-built_in\">object<\/span> obj<\/span>)<\/span>\r\n{\r\n    <span class=\"hljs-keyword\">if<\/span> (obj == <span class=\"hljs-literal\">null<\/span> || GetType() != obj.GetType())\r\n    {\r\n        <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-literal\">false<\/span>;\r\n    }\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u6bd4\u8f83\u5bf9\u8c61\u7684\u5185\u5bb9\u662f\u5426\u76f8\u7b49<\/span>\r\n    MyClass other = (MyClass)obj;\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-keyword\">this<\/span>.Property1 == other.Property1 &amp;&amp; <span class=\"hljs-keyword\">this<\/span>.Property2 == other.Property2;\r\n}\r\n<\/code><\/pre>\n<p>After rewriting the Equals method, we can determine if two objects are equal based on their content.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C#, the Equals method is used to compare if two objects are equal. This method is inherited from the Object class, so all C# objects have the Equals method. When we use the Equals method on an object, we are actually comparing whether the references of two objects are the same. If the references [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[13781,381,12643,13783,13782],"class_list":["post-10893","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-equals-method","tag-c-programming","tag-object-comparison","tag-reference-equality","tag-value-equality"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>C# Equals Method Explained - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C# Equals Method Explained\" \/>\n<meta property=\"og:description\" content=\"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-14T12:58:35+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-04T05:11:48+00:00\" \/>\n<meta name=\"author\" content=\"Sophia Anderson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sophia Anderson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\"},\"author\":{\"name\":\"Sophia Anderson\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\"},\"headline\":\"C# Equals Method Explained\",\"datePublished\":\"2024-03-14T12:58:35+00:00\",\"dateModified\":\"2025-08-04T05:11:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\"},\"wordCount\":172,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"C# Equals method\",\"C++ Programming\",\"Object Comparison\",\"Reference equality\",\"Value equality\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\",\"name\":\"C# Equals Method Explained - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T12:58:35+00:00\",\"dateModified\":\"2025-08-04T05:11:48+00:00\",\"description\":\"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C# Equals Method Explained\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30\",\"name\":\"Sophia Anderson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g\",\"caption\":\"Sophia Anderson\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C# Equals Method Explained - Blog - Silicon Cloud","description":"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C# Equals Method Explained","og_description":"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T12:58:35+00:00","article_modified_time":"2025-08-04T05:11:48+00:00","author":"Sophia Anderson","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Sophia Anderson","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/"},"author":{"name":"Sophia Anderson","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30"},"headline":"C# Equals Method Explained","datePublished":"2024-03-14T12:58:35+00:00","dateModified":"2025-08-04T05:11:48+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/"},"wordCount":172,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["C# Equals method","C++ Programming","Object Comparison","Reference equality","Value equality"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/","name":"C# Equals Method Explained - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T12:58:35+00:00","dateModified":"2025-08-04T05:11:48+00:00","description":"Master C# Equals method for object comparison. Learn reference vs value equality, inheritance from Object class, and best practices.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-equals-method-used-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C# Equals Method Explained"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/19a24313de9c988db3d69226b4a40a30","name":"Sophia Anderson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c726c09aa40e37115fb5c62d0c3ed62c16ca255d3763e2e3ae83a70ddf8c2175?s=96&d=mm&r=g","caption":"Sophia Anderson"},"url":"https:\/\/www.silicloud.com\/blog\/author\/sophiaanderson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10893","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=10893"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10893\/revisions"}],"predecessor-version":[{"id":154660,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/10893\/revisions\/154660"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=10893"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=10893"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=10893"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}