C#运算符重载实例是掌握C#运算符重载的有效方法,那么就让我们通过一个实际的例子来介绍。其中重载==,!=,Equal,GetHashCode函数。

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及成都凿毛机等,在重庆网站建设公司、全网整合营销推广、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。
- public class Record
 - {
 - public string[] arr = null;
 - public bool hasEqual = false;
 - //重载一个下标运算符号
 - public string this[int index]
 - {
 - get
 - {
 - return arr[index];
 - }
 - set
 - {
 - arr[index] = value;
 - }
 - }
 - public override int GetHashCode()
 - {
 - //在这里使用字符串数组的hashcode,避免自己完成一个算法
 - return arr.GetHashCode();
 - }
 - public Record(int count)
 - {
 - if (count < 1)
 - {
 - throw new Exception("数组的长度不能小于1");
 - }
 - arr = new string[count];
 - }
 - public static bool operator ==(Record rec1, Record rec2)
 - {
 - //注意我们调用Equals来判断是否相等。而不是在自己的函数中判断。
 - //这是因为如果在自己的函数中判断。
 - //比如有rec2=null的情况。如果是这种情况。我们要判断if(rec2==null){…}。
 - //其中rec2==null也是调用一个等号运算符,这里面有一个递归的过程,造成了死循环。
 - return Object.Equals(rec1, rec2);
 - }
 - public static bool operator !=(Record rec1, Record rec2)
 - {
 - return !Object.Equals(rec1, rec2);
 - }
 - public override bool Equals(object obj)
 - {
 - //判断与之比较的类型是否为null。这样不会造成递归的情况
 - if (obj == null)
 - return false;
 - if (GetType() != obj.GetType())
 - return false;
 - Record rec = (Record)obj;
 - int count = rec.arr.Length;
 - for (int i = 0; i < count; i++)
 - {
 - if (this.arr[i] != rec.arr[i])
 - {
 - return false;
 - }
 - }
 - return true;
 - }
 - }
 
C#运算符重载实例的基本情况就向你介绍到这里,希望对你有所帮助。
                网站标题:C#运算符重载实例浅析
                
                文章转载:http://www.csdahua.cn/qtweb/news11/37861.html
            
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网