在我们学习c#的时候,我们平时用 "+"、"-"、"*"、"/" 这些运算符,感觉非常简单。比如两个整数直接 "a + b" 就能算出结果。但是,如果我们自己创建了一个类,两个对象能不能直接用 "+" 相加呢?
默认情况下是不行的,这时候就要用到一个东西——运算符重载。
简单来说,运算符重载就是:我们自己规定某个运算符遇到自己的对象时应该怎么计算。
比如我们创建一个 "point" 类,用来表示坐标:
class point
{
public int x;
public int y;
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 static point operator +(point p1, point p2)
这句话就是在告诉c#:“以后两个 "point" 对象使用 "+" 的时候,就按照我这里写的规则来。”
使用起来也很简单:
point p1 = new point(10, 20); point p2 = new point(5, 8); point p3 = p1 + p2; console.writeline(p3.x); console.writeline(p3.y);
最后得到的就是 "15" 和 "28"。
这样一来,原本不能直接相加的两个对象,现在就可以使用 "+" 了,看起来是不是方便很多?
运算符重载不仅可以重载 "+",像 "-"、"*"、"/"、"=="、"!=" 等很多运算符都可以重载。不过也不是所有运算符都能随便重载,而且重载的时候需要遵守c#规定的语法。
你可以先把它理解成一句话:
运算符重载,就是给运算符重新定义一套“玩法”,让它能够按照我们自己的需求操作对象。
到此这篇关于c#运算符重载:让对象也能使用“加减乘除”的文章就介绍到这了,更多相关c#运算符重载内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论