大家好,欢迎来到IT知识分享网。
我们知道,基本的数据类型可以有很多操作符运算,比如1+4;2.5*19;45%9 等等,那么类可以进行操作符运算吗?
操作符重载是C# 中的一种功能,允许你自定义或修改运算符(如 +、-、* 等)的行为,让你的类实例可以像基本数据类型一样进行操作。
1.1.1. 操作符重载的基本语法
在C# 中,操作符重载通过使用 operator 关键字进行定义。操作符重载必须作为类(结构)的公共静态方法进行定义,且至少有一个参数是该类或结构的类型。
1.1.2. 基本语法
public static 返回类型 operator 操作符(参数列表) { // 操作逻辑 }
1.1.3. 操作符重载清单
操作符 |
描述 |
示例 |
重载方法签名 |
+ |
加法 |
a + b |
public static 类型 operator +(类型 a, 类型 b) |
– |
减法 |
a – b |
public static 类型 operator -(类型 a, 类型 b) |
* |
乘法 |
a * b |
public static 类型 operator *(类型 a, 类型 b) |
/ |
除法 |
a / b |
public static 类型 operator /(类型 a, 类型 b) |
% |
取模 |
a % b |
public static 类型 operator %(类型 a, 类型 b) |
== |
相等 |
a == b |
public static bool operator ==(类型 a, 类型 b) |
!= |
不等 |
a != b |
public static bool operator !=(类型 a, 类型 b) |
> |
大于 |
a > b |
public static bool operator >(类型 a, 类型 b) |
< |
小于 |
a < b |
public static bool operator <(类型 a, 类型 b) |
>= |
大于等于 |
a >= b |
public static bool operator >=(类型 a, 类型 b) |
<= |
小于等于 |
a <= b |
public static bool operator <=(类型 a, 类型 b) |
1.1.4. 示例代码
以 Point 类的加法操作符重载为例:
(1) 定义一个 Point 类,其中包含 X 和 Y 两个属性。
(2) 实现构造函数用于初始化 Point 对象。
(3) 重载 + 操作符,定义如何将两个 Point 对象相加。
(4) 重写 ToString 方法,便于输出 Point 对象的字符串表示。
假设我们有一个表示二维点的类 Point,我们希望重载加法操作符 + 来实现两个点的相加:
public class Point { public int X { get; set; } public int Y { get; set; } public Point(int x, int y) { X = x; Y = y; } // 重载加法操作符 public static Point operator +(Point p1, Point p2) { return new Point(p1.X + p2.X, p1.Y + p2.Y); } public override string ToString() { return #34;({X}, {Y})"; } } public class Program { public static void Main() { Point p1 = new Point(2, 3); Point p2 = new Point(4, 5); Point p3 = p1 + p2; Console.WriteLine(p3); // 输出: (6, 8) } }
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/164421.html