最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于運(yùn)算符重載的那些事

 更新時(shí)間:2013年05月13日 10:28:07   投稿:jingxian  
本篇文章是對(duì)關(guān)于運(yùn)算符重載的介紹引用了百科里的一個(gè)有趣的解釋。需要的朋友參考下

由于對(duì)運(yùn)算符重載不是多么理解誒,于是就百度了一下,結(jié)果發(fā)現(xiàn)一個(gè)解釋很有趣的百度知道,分享看看。

復(fù)制代碼 代碼如下:

回答:
+-*/這樣的運(yùn)算符重定義,比如你自定義了一個(gè)類a,然后你可以自己重載它的這些運(yùn)算符,比如+返回什么,-返回什么等等。

大概這個(gè)意思。

追問(wèn):

    大俠,說(shuō)真的沒(méi)看明白,能不能更通俗點(diǎn)

回答:

    像這樣,如你現(xiàn)在創(chuàng)建了一個(gè)自定義類叫 蘋果,正常情況下,如果你定義二個(gè)變量 蘋果A和蘋果B實(shí)例化它們,然后你想知道 蘋果A-蘋果B 能得到什么,默認(rèn)這二個(gè)變量是不能直接運(yùn)算的,如果你要實(shí)現(xiàn) 蘋果 類的 "-" 運(yùn)算,那么你必須重載它的 運(yùn)算符"-",然后自己在里面實(shí)現(xiàn)你的操作。 比如 你可以實(shí)現(xiàn)說(shuō)兩個(gè)不同的菜果相減返回一個(gè)爛蘋果或返回null

追問(wèn):

    大俠,能否就你說(shuō)的這個(gè)蘋果類,對(duì)其的“-”運(yùn)算符進(jìn)行重載,結(jié)果得出兩個(gè)蘋果的質(zhì)量差,煩請(qǐng)您在寫出這個(gè)Demo,最好寫詳細(xì)點(diǎn),加個(gè)注釋什么的,謝謝了,就當(dāng)帶個(gè)徒弟咯,
    (*^__^*) 嘻嘻……

回答:

    public class Apple{
        public decimal Weight{get;set;}
        public static decimal operator +(Apple a1, Apple a2)
       {
             return a1.Weight-a2.Weight;
       }
    }

    Apple a=new Apple{Weight=200};
    Apple b=new Apple{Weight=300};

    Console.Write(b-a);

    試試這個(gè)可以不。

追問(wèn):

    謝謝,為了這個(gè)問(wèn)答更完美,我修改下回答者得一些疏漏:
    上面代碼第三行應(yīng)該是“-”號(hào),更正下
    public static decimal operator - (Apple a1, Apple a2)

    下面這三句應(yīng)該放在Main()函數(shù)中,這樣就完美了
    ---------------------------------
    Apple a=new Apple{Weight=200};
    Apple b=new Apple{Weight=300};
    Console.Write(b-a);
    --------------------------------


二樓:

我覺(jué)得樓上兩位說(shuō)的很好,很明確了,我換一種方式解釋一下。
要回答樓主的問(wèn)題,那么就要先明確2個(gè)概念,運(yùn)算符,重載
 運(yùn)算符
運(yùn)算符指的就是+、-、*、/ 等此類用于算術(shù)運(yùn)算的符號(hào),這些符號(hào)在寫在程序代碼里面,我們的編譯器可以識(shí)別出來(lái),是因?yàn)槲覀円呀?jīng)為編譯器定義好了規(guī)矩(語(yǔ)法),所以你會(huì)發(fā)現(xiàn)有些有些東西可以用+連接,而有些卻不行,那是因?yàn)橄到y(tǒng)沒(méi)有自定這樣的規(guī)矩。
 重載
重載一個(gè)語(yǔ)言特性,意思就是說(shuō),編程語(yǔ)言允許存在多個(gè)個(gè)名字一樣,但是參數(shù)不一樣的方法(函數(shù))。隨手寫寫兩個(gè)方法看看:
int Add(int a,int b);
double Add(double a,double b);
我們定義了兩個(gè)Add方法,但是他們的參數(shù)不一樣,這是合法,這個(gè)時(shí)候我們就可以說(shuō)Add方法有2個(gè)“重載”。

現(xiàn)在,假如你把Add方法看作是“+”號(hào),那么這個(gè)運(yùn)算符重載的意思不就出來(lái)了嗎,“+”號(hào)可以加兩個(gè)整形(int)數(shù),也可以加兩個(gè)雙精度(double)數(shù),就是因?yàn)橛羞\(yùn)算符重載這種特性!

通過(guò)運(yùn)算符重載,你能讓“+”讓所有的東東都能相加在一起!

三樓:

示例已經(jīng)有人給了,我通俗地講您通俗地聽吧。
咱們都知道1+1=2,是因?yàn)閿?shù)學(xué)家是這么規(guī)定的,我們也是這么學(xué)的。而且只要您在地球上就不會(huì)有人來(lái)推翻這個(gè)結(jié)論,除非他很無(wú)知無(wú)聊。

設(shè)計(jì)一門語(yǔ)言的時(shí)候只能把那些最普遍的規(guī)律實(shí)現(xiàn)出來(lái),至于那些特殊的規(guī)律需要讓這些規(guī)律的制定者去實(shí)現(xiàn)。

比如說(shuō) “馬+馬=馬”;“驢+馬=騾子” 這或許還在常理之中。可能有怪胎會(huì)定義“人+妖=人妖”……
計(jì)算機(jī)能認(rèn)識(shí)數(shù)值已經(jīng)很不錯(cuò)了。您也不會(huì)期待它能認(rèn)識(shí)“馬”是什么東西吧。這時(shí)候您定義了一個(gè)類,類的名字叫做“馬”。并在里面寫了一些“馬”的屬性。漸漸地馬的形象就飽滿了。計(jì)算機(jī)終于能認(rèn)識(shí)“馬”了??墒?ldquo;馬”實(shí)例化出來(lái)的對(duì)象它不是數(shù)值,計(jì)算機(jī)不知道“馬+馬”等于什么,這時(shí)候您就需要為“馬”制定四則運(yùn)算。于是乎電腦又知道了“公馬”+“母馬”=“小馬駒”。這是同類對(duì)象的運(yùn)算符重載。
然后您又定義了“驢”這個(gè)類。電腦也認(rèn)識(shí)“驢”了。
最后您還需要定義“驢+馬=騾子”,這就是不同類對(duì)象的運(yùn)算符重載了。

其實(shí)string對(duì)象的+運(yùn)算就是最簡(jiǎn)單最常用的運(yùn)算符重載了。甚至int+double在C#中也是需要定義的。

相關(guān)文章

  • C#實(shí)現(xiàn)讀寫CSV文件的方法詳解

    C#實(shí)現(xiàn)讀寫CSV文件的方法詳解

    項(xiàng)目中經(jīng)常遇到CSV文件的讀寫需求,其中的難點(diǎn)主要是CSV文件的解析。本文會(huì)介紹CsvHelper、TextFieldParser、正則表達(dá)式三種解析CSV文件的方法,需要的可以參考一下
    2022-06-06
  • C#編程中常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的比較(Unity3D游戲開發(fā))

    C#編程中常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的比較(Unity3D游戲開發(fā))

    在本篇內(nèi)容里我們給大家整理了關(guān)于Unity3D游戲開發(fā)中C#編程中常見(jiàn)數(shù)據(jù)結(jié)構(gòu)的比較相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下。
    2019-05-05
  • C#實(shí)現(xiàn)將TextBox綁定為KindEditor富文本

    C#實(shí)現(xiàn)將TextBox綁定為KindEditor富文本

    KindEditor?依靠出色的用戶體驗(yàn)和領(lǐng)先的技術(shù)提供富文本編輯功能,是一款非常受歡迎的HTML在線編輯器,下面我們就來(lái)看看C#如何將TextBox綁定為KindEditor富文本吧
    2024-04-04
  • C#通過(guò)重寫Panel改變邊框顏色與寬度的方法

    C#通過(guò)重寫Panel改變邊框顏色與寬度的方法

    這篇文章主要介紹了C#通過(guò)重寫Panel改變邊框顏色與寬度的方法,涉及C#針對(duì)Panel控件的重寫與屬性設(shè)置技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-08-08
  • C#通過(guò)Win32API設(shè)置客戶端系統(tǒng)時(shí)間的方法詳解

    C#通過(guò)Win32API設(shè)置客戶端系統(tǒng)時(shí)間的方法詳解

    在日常工作中,有時(shí)可能會(huì)需要獲取或修改客戶端電腦的系統(tǒng)時(shí)間,比如軟件設(shè)置了Licence有效期,本文以一個(gè)簡(jiǎn)單的小例子,簡(jiǎn)述如何通過(guò)C#獲取和設(shè)置客戶端電腦的系統(tǒng)時(shí)間,僅供學(xué)習(xí)分享使用,如有不足之處,還請(qǐng)指正,需要的朋友可以參考下
    2024-06-06
  • C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#繼承IList?接口的實(shí)現(xiàn)步驟

    C#中的IList<T>接口是.NET框架中的一種通用接口,它定義了一組在運(yùn)行時(shí)可以使用類型參數(shù)T的元素的集合,本文給大家介紹了C#繼承IList?接口的設(shè)計(jì)方法,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • C#限速下載網(wǎng)絡(luò)文件的方法實(shí)例

    C#限速下載網(wǎng)絡(luò)文件的方法實(shí)例

    本篇文章主要介紹了C#限速下載網(wǎng)絡(luò)文件的方法實(shí)例,可以限制下載文件的速度,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。
    2016-12-12
  • C#實(shí)現(xiàn)中英文混合字符串截取的方法

    C#實(shí)現(xiàn)中英文混合字符串截取的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)中英文混合字符串截取的方法,是C#字符串操作的常用方法,需要的朋友可以參考下
    2014-08-08
  • C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法

    C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法

    這篇文章主要介紹了C#創(chuàng)建數(shù)據(jù)庫(kù)及導(dǎo)入sql腳本的方法,涉及C#針對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建、連接、導(dǎo)入等相關(guān)操作技巧,需要的朋友可以參考下
    2015-12-12
  • unity 鼠標(biāo)移入彈出UI的操作

    unity 鼠標(biāo)移入彈出UI的操作

    這篇文章主要介紹了unity 鼠標(biāo)移入彈出UI的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-04-04

最新評(píng)論

固始县| 安新县| 天门市| 湖口县| 青海省| 文水县| 临夏县| 如皋市| 两当县| 重庆市| 建宁县| 安福县| 宁武县| 齐齐哈尔市| 开阳县| 无棣县| 汉川市| 东兴市| 陆川县| 安泽县| 石渠县| 错那县| 台前县| 都昌县| 青海省| 镇江市| 凌源市| 通化县| 东莞市| 遂平县| 涡阳县| 阿拉善盟| 朝阳县| 丘北县| 雷波县| 晋州市| 聂荣县| 新田县| 漳州市| 定兴县| 北碚区|