ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C#重写Equals和GetHashCodeC#基础学习

2019-04-09 15:47:54  阅读:384  来源: 互联网

标签:return Name C# Age Equals Student GetHashCode obj public


 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading.Tasks;
 6 
 7 namespace day01
 8 {
 9     class Class31
10     {
11         static void Main(string[] args)
12         {
13             Student stu1 = new Student("zhangsan", 23);
14             Student stu2 = new Student("zhangsan", 23);
15             Console.WriteLine(stu1.Equals(stu2));
16             Console.ReadKey();
17         }
18     }
19     public class Student
20     {
21         private string name;
22         private int age;
23         public string Name { get; set; }
24         public int Age { get; set; }
25         public Student(string name,int age)
26         {
27             Name = name;
28             Age = age;
29         }
30         public override string ToString()
31         {
32             return "name: " + Name + " age: " + Age;
33         }
34         //public override bool Equals(object obj)
35         //{
36         //    if(obj == null)
37         //    {
38         //        return false;
39         //    }
40         //    if(obj.GetType() == typeof(Student))
41         //    {
42         //        Student stu = (Student)obj;
43         //        if(stu.Name.Equals(this.Name) && stu.Age == this.Age)
44         //        {
45         //            return true;
46         //        }
47         //        else
48         //        {
49         //            return false;
50         //        }
51         //    }
52         //    else
53         //    {
54         //        抛出异常
55         //        throw new ArgumentException("类型转换异常");
56         //    }
57         //}
58         public override bool Equals(object obj)
59         {
60             if(obj == null)
61             {
62                 return false;
63             }
64             if(obj is Student)
65             {
66                 Student stu = obj as Student;
67                 if(stu.Name.Equals(this.Name) && stu.Age == this.Age)
68                 {
69                     return true;
70                 }
71                 else
72                 {
73                     return false;
74                 }
75             }
76             else
77             {
78                 throw new ArgumentException("类型转换异常");
79             }
80 
81         }
82         //如何重写GetHashCode()方法
83         //先放着
84         public override int GetHashCode()
85         {
86             return base.GetHashCode();
87         }
88     }
89 }

 

标签:return,Name,C#,Age,Equals,Student,GetHashCode,obj,public
来源: https://www.cnblogs.com/littlelittleprince/p/10677346.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有