我爱Aspx >> C#.Net >> C#锐利体验(8.2)C#锐利体验(8.2)
操作符重载
操作符是C#中用于定义类的实例对象间表达式操作的一种成员。和索引器类似,操作符仍然是对方法实现的一种逻辑界面抽象,也就是说在编译成的IL中间语言代码中,操作符仍然是以方法的形式调用的。在类内定义操作符成员又叫操作符重载。C#中的重载操作符共有三种:一元操作符,二元操作符和转换操作符。并不是所有的操作符都可以重载,三种操作符都有相应的可重载操作符集,列于下表:
一元操作符 + - ! ~ ++ -- true false
二元操作符 + - * / % & | ^ << >> == != > < >= <=
转换操作符 隐式转换()和显式转换()
重载操作符必须是public和static 修饰的,否则会引起编译错误,这在操作符的逻辑语义下是不言而喻的。父类的重载操作符会被子类继承,但这种继承没有覆盖,隐藏,抽象等行为,不能对重载操作符进行virtual sealed override abstract修饰。操作符的参数必须为传值参数。我们下面来看一个具体的例子:
using System;
class Complex
{
double r, v; //r+ v i
public Complex(double r, double v)
{
this.r=r;
this.v=v;
}
public static Complex operator +(Complex a, Complex b)
{
return new Complex(a.r+b.r, a.v+b.v);
}
public static Complex operator -(Complex a)
{
Ҷƪл˵?
C#锐利体验(8.1)[05-20]
C#锐利体验(7.1)[05-20]
C#锐利体验(6.4)[05-20]
C#锐利体验(6.2)[05-20]
C#锐利体验(6.1)[05-20]
运用C#实现POP3邮件接收程序(1)[05-20]
Visual C#中使用线程(3)[05-20]
Visual C#中使用线程[05-20]
用C#制作字幕显示屏幕保护[05-20]
C#网络编程初探(3)[05-20]
C#锐利体验(8.1)[05-20]
C#锐利体验(7.1)[05-20]
C#锐利体验(6.4)[05-20]
C#锐利体验(6.2)[05-20]
C#锐利体验(6.1)[05-20]
运用C#实现POP3邮件接收程序(1)[05-20]
Visual C#中使用线程(3)[05-20]
Visual C#中使用线程[05-20]
从Windows DNA到.NET(3)[05-20]
从Windows DNA到.NET(2)[05-20]