新聞中心
C#操作符重載特點(diǎn)是什么呢?

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了雨湖免費(fèi)建站歡迎大家使用!
細(xì)心的朋友可能發(fā)現(xiàn),C#雖然可以重載操作符,但和C++比較起來,卻有很大的不同。定義的時候重載操作符方法必須是static,而且至少有一個參數(shù)(一目和二目分別是一個和兩個),C#和C++比起來,最重要的特征是:<、>;==、!=;true、false必須成對出現(xiàn),即重載了“<”就必須重載“>”,重載了“==”就必須重載“!=”,重載了“true”就必須重載“false”;另外,還必須實(shí)現(xiàn)基類object的兩個虛方法:GetHashCode()和Equals(object obj)。
以下是C#操作符重載特點(diǎn)實(shí)例程序代碼,有些地方寫得不完善,只能說僅僅說明了問題,不對之處請指教:
- using System;
- using System.Xml;
- namespace ConsoleApplication8
- {
- ///
- /// 姓名類
- ///
- class Namer
- //C#操作符重載特點(diǎn)實(shí)例
- {
- private string FirstName;
- private string LastName;
- public Namer()
- {
- this.Init(null,null);
- }
- public Namer(string fn,string ln)
- {
- this.Init(fn,ln);
- }
- //C#操作符重載特點(diǎn)實(shí)例
- private void Init(string fn,string ln)
- {
- this.FirstName=fn;
- this.LastName=ln;
- }
- ///
- /// 重載運(yùn)算符true
- ///
- ///
- ///
如果姓名中姓或名有一個為空,就返回假 - public static bool operator true(Namer n)
- {
- if(n.FirstName==null || n.LastName==null)
- return false;
- else
- return true;
- }
- ///
- /// 重載運(yùn)算符false
- ///
- ///
- ///
- public static bool operator false(Namer n)
- {
- if(n.FirstName==null || n.LastName==null)
- return false;
- else
- //C#操作符重載特點(diǎn)實(shí)例
- return true;
- }
- ///
- /// 重載運(yùn)算符==
- ///
- ///
- ///
- ///
- public static bool operator ==(Namer n1,Namer n2)
- {
- if(n1.FirstName==n2.FirstName
- && n1.LastName==n2.LastName)
- return true;
- else
- //C#操作符重載特點(diǎn)實(shí)例
- return false;
- }
- ///
- /// 重載運(yùn)算符!=
- ///
- ///
- ///
- ///
- public static bool operator !=(Namer n1,Namer n2)
- {
- if(n1.FirstName!=n2.FirstName || n1.LastName !=n2.LastName)
- return true;
- else
- return false;
- }
- ///
- /// 重載運(yùn)算符>
- ///
- ///
- ///
- ///
- //C#操作符重載特點(diǎn)實(shí)例
- public static bool operator >(Namer n1,Namer n2)
- {
- return (n1.FirstName.CompareTo(n2.FirstName)>0
- && n1.LastName.CompareTo(n2.LastName)>0);
- }
- ///
- /// 重寫方法,必須有,后面的111是亂加的,你也可以寫其它的
- ///
- ///
- public override int GetHashCode()
- {
- //C#操作符重載特點(diǎn)實(shí)例
- return base.GetHashCode()*111;
- }
- ///
- /// 重寫方法,必須有
- ///
- ///
- ///
- public override bool Equals(object obj)
- {
- return base.Equals (obj);
- }
- ///
- /// 重寫方法,必須有
- ///
- ///
- public override string ToString()
- {
- return "姓:"+this.FirstName+" 名:"+this.LastName;
- }
- public static void Main()
- {
- Namer n1=new Namer("li","zanhong");
- Namer n2=new Namer("ahang","aan");
- //Namer n2=new Namer("li","zanhong");
- if(n1==n2)
- Console.WriteLine("一樣的名字");
- else
- //C#操作符重載特點(diǎn)實(shí)例
- Console.WriteLine("不一樣的名字");
- /////////////////////////////////////
- if(n1!=n2)
- Console.WriteLine("不一樣的名字成立");
- else
- Console.WriteLine("同樣的名字成立");
- /////////////////////////////////////
- if(n1>n2)
- Console.WriteLine(n1.ToString()+">"+n2.ToString());
- else if(n1
- Console.WriteLine(n1.ToString()+"<"+n2.ToString());
- else
- Console.WriteLine("沒有正確比較");
- Console.ReadLine();
- }
- }
- }
C#操作符重載特點(diǎn)實(shí)例的基本內(nèi)容就向你介紹到這里,希望對你了解和學(xué)習(xí)C#操作符重載有所幫助。
【編輯推薦】
- C# 操作XML的全過程實(shí)例淺析
- C#操作xml文件實(shí)例詳解
- C#操作XML文件學(xué)習(xí)綜合體會
- C#操作符重載學(xué)習(xí)的一點(diǎn)總結(jié)
- C#操作符重載應(yīng)用的一點(diǎn)體會
文章題目:C#操作符重載特點(diǎn)實(shí)例淺析
網(wǎng)站URL:http://m.fisionsoft.com.cn/article/cdcpdhj.html


咨詢
建站咨詢
