Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

c# equals

作者:风皇霸陵   发布日期:2025-06-02   浏览:54

public class Person
{
    private string name;
    private int age;

    public Person(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    // Override the Equals method to compare two Person objects based on their properties
    public override bool Equals(object obj)
    {
        if (obj == null || GetType() != obj.GetType())
        {
            return false;
        }

        Person other = (Person)obj;
        return name == other.name && age == other.age;
    }

    // It's also a good practice to override GetHashCode when overriding Equals
    public override int GetHashCode()
    {
        return name.GetHashCode() ^ age.GetHashCode();
    }
}

// Example usage:
Person person1 = new Person("John", 30);
Person person2 = new Person("John", 30);

Console.WriteLine(person1.Equals(person2)); // Output: True

解释说明:

  1. 类定义Person 类包含两个私有字段 nameage,以及一个构造函数来初始化这些字段。
  2. 重写 Equals 方法:通过重写 Object 类的 Equals 方法,我们定义了如何比较两个 Person 对象。这里我们检查对象是否为 null 或类型是否匹配,然后比较 nameage 属性。
  3. 重写 GetHashCode 方法:为了确保哈希表等数据结构能够正确工作,通常需要同时重写 GetHashCode 方法。这里我们简单地将 nameage 的哈希码进行异或运算。
  4. 示例用法:创建两个 Person 对象,并使用 Equals 方法比较它们。如果两个对象的属性相同,则返回 True

上一篇:c# set

下一篇:c# orderby

大家都在看

c# 二进制

c# tcp client

c# type.gettype

c# sqlconnection

.net和c#

c#游戏开发

c#网络编程

c# rectangle

c# if else

c# rtsp

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站