• λ我爱Aspx >> C#.Net >> C#锐利体验(8.2)
  • C#锐利体验(8.2)

  • :aspxer  Դ:internet  :2007-5-20 15:38:39  ؼ:c#
  • 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)