重写Object的ToString和Equals方法

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace 集合
  7 {
  8     class Student
  9     {
 10         //学生id
 11         private int sid;
 12 
 13         public int Sid
 14         {
 15             get { return sid; }
 16             set { sid = value; }
 17         }
 18         //学生姓名
 19         private string name;
 20 
 21         public string Name
 22         {
 23             get { return name; }
 24             set { name = value; }
 25         }
 26         //班级
 27         private string class1;
 28 
 29         public string Class1
 30         {
 31             get { return class1; }
 32             set { class1 = value; }
 33         }
 34         //学生成绩(html)
 35         private double html;
 36 
 37         public double Html
 38         {
 39             get { return html; }
 40             set { html = value; }
 41         }
 42         //学生成绩(c)
 43         private double c;
 44 
 45         public double C
 46         {
 47             get { return c; }
 48             set { c = value; }
 49         }
 50         //学生成绩(sql)
 51         private double sql;
 52 
 53         public double Sql
 54         {
 55             get { return sql; }
 56             set { sql = value; }
 57         }
 58 
 59 
 60         //构造函数(用来以名字来查询的)
 61         public Student(string name)
 62         {
 63             this.Name = name;
 64         }
 65         //构造方法(用来以学号来查询的和删除学生)
 66         public Student(int sid)
 67         {
 68             this.Sid = sid;
 69         }
 70 
 71         //构造方法(用来添加学生信息的)
 72         public Student(int sid, string name, string class1, double c, double html, double sql)
 73         {
 74             this.Sid = sid;
 75             this.Name = name;
 76             this.Class1 = class1;
 77             this.C = c;
 78             this.Html = html;
 79             this.Sql = sql;
 80         }
 81         /// <summary>
 82         /// 重写object的Tostring方法
 83         /// </summary>
 84         /// <returns></returns>
 85         public override string ToString()
 86         {
 87             //顺序决定显示的顺序
 88             return this.sid.ToString()+"\t" + name +"\t"+class1+"\t" + c +"\t"+html+"\t" +sql ;
 89         }
 90         /// <summary>
 91         /// 重写Object的Equals方法
 92         /// </summary>
 93         /// <param name="obj"></param>
 94         /// <returns></returns>
 95         public override bool Equals(object obj)
 96         {
 97             // 判断是否属于Stundet数据类型(除开基本类型外其他的都是引用类型)
 98             if (!(obj is Student))
 99             {
100                 return false;
101             }
102             //姓名是否相等(this.name这里不是指当前一个对象,而是指当前这个集合的对象)
103             if (this.name.Equals(((Student)obj).name))
104             {
105                 return true;
106             }
107             //学号(它会遍历集合)
108             if (this.sid.Equals(((Student)obj).sid))
109             {
110                 return true;
111             }
112             return false;
113         }
114     }
115 }

      Student stu=new Student();

       Console.WriteLine(stu);//执行的结果为你重写toString方法的结果而不是Student这个对象

posted @ 2013-10-24 10:42  豆豆0829  阅读(301)  评论(0编辑  收藏  举报