位置:首页 > 软件操作教程 > 编程开发 > C# > 问题详情

C# 运算符重载

提问人:刘团圆发布时间:2020-12-07

    通过运算符重载(operator overloading),可以对我们设计的类使用标准的运算符,例如+、>等。这称为重载,因为在使用特定的参数类型时,我们为这些运算符提供了自己的实现代码,其方式与重载方法相同,也是为同 名方法提供不同的参数。

    运算符重载非常有用,因为我们可在运算符重载的实现中执行需要的任何操作,这并不一定像用“+”表示“把这两个操作数相加”这么简单。稍后介绍一个进一步升级CaidLib库的示例。我们将提供比较运算符的实现代码,比较两张牌,看看在一圈(扑克牌游戏中的一局)中哪张牌会赢。

    因为在许多扑克牌游戏中,一圈取决于牌的花色,这并不像比较牌上的数字那样直接。如果第二张牌与第—张牌的花色不同,则无论其点数是什么,第一张牌都会贏。考虑两个操作数的顺序,就可以实现这种比较。也可以考虑“王牌”的花色,而王牌可以胜过其他花色,即使该王牌的花色与第一张牌不同,也是如此。也就是说,card1 > card2是true(这表示如果card1是第一个出牌,则card1胜过了 card2),并不意味着card2 > cardl1是false。如果card1和card2都不是王牌,且属于不同的花色,则这两个比较都是true。

    但我们先看一下运算符重载的基本语法。要重载运算符,可给类添加运算符类型成员(它们必须是static)。一些运算符有多种用途(如-运算符就有一元和二元两种功能),因此我们还指定了要处理多少个操作数,以及这些操作数的类型。一般情况下,操作数的类型与定义运算符的类相同,但也可以定义处理混合类型的运算符。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部