位置:首頁 > 軟件操作教程 > 編程開發(fā) > C# > 問題詳情

C# 運算符重載

提問人:劉團圓發(fā)布時間:2020-12-07

    通過運算符重載(operator overloading),可以對我們設(shè)計的類使用標準的運算符,例如+、>等。這稱為重載,因為在使用特定的參數(shù)類型時,我們?yōu)檫@些運算符提供了自己的實現(xiàn)代碼,其方式與重載方法相同,也是為同 名方法提供不同的參數(shù)。

    運算符重載非常有用,因為我們可在運算符重載的實現(xiàn)中執(zhí)行需要的任何操作,這并不一定像用“+”表示“把這兩個操作數(shù)相加”這么簡單。稍后介紹一個進一步升級CaidLib庫的示例。我們將提供比較運算符的實現(xiàn)代碼,比較兩張牌,看看在一圈(撲克牌游戲中的一局)中哪張牌會贏。

    因為在許多撲克牌游戲中,一圈取決于牌的花色,這并不像比較牌上的數(shù)字那樣直接。如果第二張牌與第—張牌的花色不同,則無論其點數(shù)是什么,第一張牌都會贏??紤]兩個操作數(shù)的順序,就可以實現(xiàn)這種比較。也可以考慮“王牌”的花色,而王牌可以勝過其他花色,即使該王牌的花色與第一張牌不同,也是如此。也就是說,card1 > card2是true(這表示如果card1是第一個出牌,則card1勝過了 card2),并不意味著card2 > cardl1是false。如果card1和card2都不是王牌,且屬于不同的花色,則這兩個比較都是true。

    但我們先看一下運算符重載的基本語法。要重載運算符,可給類添加運算符類型成員(它們必須是static)。一些運算符有多種用途(如-運算符就有一元和二元兩種功能),因此我們還指定了要處理多少個操作數(shù),以及這些操作數(shù)的類型。一般情況下,操作數(shù)的類型與定義運算符的類相同,但也可以定義處理混合類型的運算符。

繼續(xù)查找其他問題的答案?

相關(guān)視頻回答
回復(fù)(0)
返回頂部