C#符号重载

符号重载是一个具有特殊名称的函数,你可以简单的认为它是一个方法,并且是带有返回值的方法;它的用法是通过关键字operator加上(运算符的符号)来定义的。相比其他函数一样,符号重载有返回类型和参数列表。

符号重载的多态(方法)

例如下面的函数:  


class Rect
{
    public double Length;
    public double Width;
    public double Height;
    public double Volume;

    // 无参数的构造函数
    public Rect()
    {

    }
    // 有参数的构造函数
    public Rect(double l,double w,double h)
    {
        Length = l;
        Width = w; 
        Height = h;
    }

    ~Rect() 
    {
        Console.WriteLine("回收");
    }
}


上面方法三(Rect)前的符号"~"是析构函数,当对象被释放的时候触发析构函数,把一个对象赋值为null 然后通过GC垃圾回收之后触发

符号重载的实现

下面的代码演示了重载的实现


执行代码:

 创建第一个rect对象
  Rect r1 = new Rect(2,5,4);

 第二个rect对象
  Rect r2 = new Rect(3,6,9);
 使用加号把r1和r2相加
  Rect r3 = r1 + r2;

Console.WriteLine(r3.Length);
Console.WriteLine(r3.Width);
Console.WriteLine(r3.Height);
Console.WriteLine(r3.Volume);

Console.WriteLine(r1-r2);

Console.WriteLine(r1==r2);
Console.WriteLine(r1!=r2);


当上面的代码被执行时,会产生以下结果:

5
11
13
715
-23
False
True

重载运算符号

    加号(+):通过使用+重载并传递两个Rect对象。

    减号(-):使用-进行重载,传递两个整型数组,而返回值也是整型数组,把两个整型数组每一个      元素进行相减。

    相等(==):上面的方法因为返回值是bool类型,所以如果两个不同方法中的值相等了,那么结果      就为true,反之就为false。

    不等(!=):和重载运算符号相等(==)一样,只要满足条件那么,返回值就为true,反之就     为 false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值