日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
C#操作符重載學(xué)習(xí)的一點(diǎn)總結(jié)

C#操作符重載問(wèn)題的提出

公司主營(yíng)業(yè)務(wù):網(wǎng)站建設(shè)、成都做網(wǎng)站、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出新鄭免費(fèi)做網(wǎng)站回饋大家。

在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,自己定義一個(gè)類,就等于創(chuàng)建了一個(gè)新類型。類的實(shí)例和變量一樣,可以作為參數(shù)傳遞,也可以作為返回類型。

C#操作符重載問(wèn)題比如對(duì)于兩個(gè)整型變量,使用算術(shù)操作符可以簡(jiǎn)便地進(jìn)行算術(shù)運(yùn)算:

 
 
 
  1. class A
  2. {
  3.  public int x;
  4.  public int y;
  5.  public int Plus{
  6.     return x+y;
  7.   }
  8. }

C#操作符重載問(wèn)題再比如,我們希望將屬于不同類的兩個(gè)實(shí)例的數(shù)據(jù)內(nèi)容相加:

 
 
 
  1. class B
  2. {
  3.   public int x;
  4. }
  5. class Test
  6. {
  7.  public int z;
  8.  public static void Main{
  9.     A a=new A();
  10.     B b=new B();
  11.     z=a.x+b.x;
  12.  }
  13. }

使用a.x+b.x這種寫(xiě)法不夠簡(jiǎn)潔,也不夠直觀。更為嚴(yán)重的問(wèn)題是,如果類的成員中聲明時(shí)使用的不是publixc修飾符的話,這種訪問(wèn)就是非法的。

我們知道,在C#中,所有數(shù)據(jù)要么屬于某個(gè)類,要么屬于某個(gè)類的實(shí)例,充分體現(xiàn)了面向?qū)ο蟮乃枷?。因此,為了表達(dá)上的方便,人們希望可以重新給已定義的操作符賦予新的含義,在特定的類的實(shí)例上進(jìn)行新的解釋。這就需要通過(guò)操作符重載來(lái)解決。

使用成員方法重載操作符

C#操作符重載總是在類中進(jìn)行聲明,并且通過(guò)調(diào)用類的成員方法來(lái)實(shí)現(xiàn)。

操作符重載聲明的格式為:

 
 
 
  1. type operator operator-name(formal-param-list)

C#操作符重載可以實(shí)現(xiàn)的有:

 
 
 
  1. + - ! ~ ++ -- true false
  2. * / % & | ^ << >> == != > < >= <=

但也有一些操作符是不允許進(jìn)行重載的,如:

 
 
 
  1. =,&&,||,?:,new,typeof,sizeof,is

C#操作符重載之一元操作符重載

顧名思義,一元操作符重載時(shí)操作符只作用于一個(gè)對(duì)象,此時(shí)參數(shù)表為空,當(dāng)前對(duì)象作為操作符的單操作數(shù)。

下面我們舉一個(gè)角色游戲中經(jīng)常遇到的例子。扮演的角色具有內(nèi)力、體力、經(jīng)驗(yàn)值、剩余體力、剩余內(nèi)力五個(gè)屬性,每當(dāng)經(jīng)驗(yàn)值達(dá)到一定程序時(shí),角色便會(huì)升級(jí),體力、內(nèi)力上升,剩余體力和內(nèi)力補(bǔ)滿?!吧?jí)”我們使用重載操作符“++”來(lái)實(shí)現(xiàn)。

C#操作符重載程序:

 
 
 
  1. using System;
  2. class Player
  3. {
  4.  public int neili;
  5.  public int tili;
  6.  public int jingyan;
  7.  public int neili_r;
  8.  public int tili_r;
  9.  public Player()
  10.  {
  11.    neili=10;
  12.    tili=50;
  13.    jingyan=0;
  14.    neli_r=50;
  15.    tili_r=50;
  16.  }
  17.  public static Player operator ++(Player p){
  18.    p.neili=p.neili+50;
  19.    p.tili=p.tili+100;
  20.    p.neili_r=p.neili;
  21.    p.tili_r=p.tili;
  22.    return p;
  23.  }
  24.  public void Show()
  25.  {
  26.   Console.WriteLine("Tili:{0}",tili);
  27.   Console.WriteLine("Neili:{0}",neili);
  28.   Console.WriteLine("Tili_full:{0}",tili_r);
  29.   Console.WriteLine("Neili_full:{0}",neili_r);
  30.  }
  31. }
  32. class Test
  33. {
  34.  public static void Main(){
  35.     Player man=new Player();
  36.     man.Show();
  37.     man++;
  38.     Console.WriteLine("Now upgrading...:");
  39.     man.Show();
  40.  }
  41. }

C#操作符重載之二元操作符重載

大多數(shù)情況下我們使用二元操作符重載。這時(shí)參數(shù)表中有一個(gè)參數(shù),當(dāng)前對(duì)象作為該操作符的左操作數(shù),參數(shù)作為操作符的右操作數(shù)。

下面我們給出二元操作符重載的一個(gè)簡(jiǎn)單例子,即笛卡兒坐標(biāo)相加。

C#操作符重載程序:

 
 
 
  1. using System;
  2. class DKR
  3. {
  4.   public int x,y,z;
  5.   public DKR(int vx,int vy,int vz){
  6.      x=vx;
  7.      y=vy;
  8.      z=vz;
  9.   }
  10.   public static DKR operator +(DKR d1,DKR d2)
  11.   {
  12.   DKR dkr=new DKR(0,0,0);
  13.   dkr.x=d1.x+d2.x;
  14.   dkr.y=d1.y+d2.y;
  15.   dkr.z=d1.z+d2.z;
  16.   return dkr;
  17.   }
  18. }  //C#操作符重載
  19. class Test
  20. {
  21.   publixc statixc void Main(){
  22.     DKR d1=new DKR(3,2,1);
  23.     DKR d2=new DKR(0,6,5);
  24.     DKR d3=d1+d2;
  25.     Console.WriteLine("The 3d
  26. location of d3 is:{0},{1},{2}",d3.x,d3.y,d3,z);
  27.   }
  28. }

試著編譯、運(yùn)行該程序,看結(jié)果是否與預(yù)期一致。

C#操作符重載的基本內(nèi)容就向你介紹到這里,希望對(duì)你了解和學(xué)習(xí)C#操作符重載有所幫助.


分享名稱:C#操作符重載學(xué)習(xí)的一點(diǎn)總結(jié)
網(wǎng)站URL:http://www.dlmjj.cn/article/cdsdsgo.html