有时可以把运算符用于从类实例化而来的对象,因为类可以包含如何处理运算符的指令。
例如,给Animal类添加一个新属性Weight。接着使用下述代码比较家畜的体重:
if (cowA.Height > cowB.Height)
{
…
}
使用运算符重载,可在代码中提供隐式使用Weight属性的逻辑,如下面的代码所示:
if (cowA > cowB)
{
…
}
大于运算符>被重载了。我们为重载运算符编写代码,执行上述操作,这段代码用作类定义的一部分,而该运算符作用于这个类。在上例中,使用了两个Cow对象,所以运算符重载定义包含在Cow类中。也可以采用相同的方式重载运算符,使其处理不同的类,其中一个(或两个)类定义包含达到这一目的的代码。
注意,只能采用这种方式重载现有的C#运算符,不能创建新的运算符。但可以为一元(一个操作数)和二元 (两个操作数)运算符(如+或>)提供实现代码。
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>