En C#: ¿cuál es la diferencia entre `==` y `Equals()` al comparar objetos?
¡Hola, colegas! Soy un desarrollador principiante de C# y me encontré con una confusión. Tengo una clase simple Person con dos propiedades: Name y Age. Creé dos instancias de esta clase con los mismos valores de campos. Cuando las comparo con `==`, el resultado es `false`. Pero si uso el método `Equals()`, también es `false`. Esperaba que fueran iguales, ya que los datos coinciden. Aquí está el código:
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
class Program
{
static void Main()
{
Person p1 = new Person { Name = "Alice", Age = 30 };
Person p2 = new Person { Name = "Alice", Age = 30 };
Console.WriteLine(p1 == p2); // false
Console.WriteLine(p1.Equals(p2)); // false
}
}
```
Pero si comparo strings o números, `==` funciona como se espera:
```csharp
string s1 = "hello";
string s2 = "hello";
Console.WriteLine(s1 == s2); // true
int a = 5;
int b = 5;
Console.WriteLine(a == b); // true
```
No answers yet.
Inicia sesión para dejar una respuesta
Blogs
Top 5 errores de desarrolladores principiantes en Go y cómo evitarlos