---
title: "What is the difference between Equals() and == in C#?"  
description: "What is the difference between Equals() and == in C#?"  
author: "Ponu Maurya"  
published: 2025-06-23  
updated: 2025-06-23  
canonical: https://www.mindstick.com/interview/34276/what-is-the-difference-between-equals-and-in-c-sharp  
category: "c#"  
tags: ["c#"]  
reading_time: 1 minute  

---

# What is the difference between Equals() and == in C#?

## Answer:

1. `==`: Compares **reference** for reference types (unless overloaded).
2. `Equals()`: Compares **value** (default is reference, but can be overridden).

```cs
string a = "hello";
string b = string.Copy(a);
Console.WriteLine(a == b);       // True (content comparison for string)
Console.WriteLine(a.Equals(b));  // True
```

For custom types, override `Equals()` and `GetHashCode()` for value comparison.

## Answers

### Answer by Ponu Maurya

## Answer:

1. `==`: Compares **reference** for reference types (unless overloaded).
2. `Equals()`: Compares **value** (default is reference, but can be overridden).

```cs
string a = "hello";
string b = string.Copy(a);
Console.WriteLine(a == b);       // True (content comparison for string)
Console.WriteLine(a.Equals(b));  // True
```

For custom types, override `Equals()` and `GetHashCode()` for value comparison.


---

Original Source: https://www.mindstick.com/interview/34276/what-is-the-difference-between-equals-and-in-c-sharp

Copyright © MindStick Software Pvt. Ltd. This Markdown version is provided for developers, AI systems, and offline reading.
