C# 运算符重载与结构体使用
1. 运算符重载概述
在 C# 中,设计目标之一是让用户定义的类能够具备内置类型的所有功能。以分数类型为例,要确保该类具有内置类型的功能,就需要能对分数实例进行算术运算(如加法、乘法等),还能在分数类型和内置类型(如整数)之间进行转换。
若不使用运算符重载,实现分数加法可能会写成:
Fraction theSum = firstFraction.Add(secondFraction);
但这种方式不够直观,更好的写法是:
Fraction theSum = firstFraction + secondFraction;
这种写法与内置类型(如 int
)的使用方式一致,更加直观。
2. 使用 operator
关键字
在 C# 中,通过创建静态方法来实现运算符,其返回值代表运算结果,参数为操作数。当为类创建运算符时,就称之为“重载”该运算符,类似于重载成员方法。例如,重载加法运算符 +
可以这样写:
public static Fraction operator+(Fraction lhs, Fraction rhs)
这里约定将参数命名为 lhs
(左手