• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C#运算符重载

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
函数的重载——同名函数,不同的参数(包括参数个数不同和参数个数相同但个数不同)
将其引申,像如下的代码:
j;
 
如果没有自定义的运算符重载,像+,-,*,/这样的运算符只能用于预定义的数据类型,编译器认为所有常见的运算符都是用于这些数据类型的。。。
问题来了,如果我要对两个复数或矩阵进行四则运算,就需要我们自己扩展运算符重载函数了。。。
 
示例:复数的四则运算
 Complex
{
    public int real;
    
public int imaginary;

    
public Complex(int real, int imaginary)
    {
        
this.real = real;
        
this.imaginary = imaginary;
    }

    
//overload operator(+),added(two Complex objects) and return a Complex type
    public static Complex operator +(Complex c1, Complex c2)
    {
        
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
    }

    
//overload operator(-)
    public static Complex operator -(Complex c1, Complex c2)
    {
        
return new Complex(c1.real - c2.real, c1.imaginary - c2.imaginary);
    }
    
    
//overload operator(*)
    public static Complex operator *(Complex c1, Complex c2)
    {
        
return new Complex(c1.real * c2.real - c1.imaginary * c2.imaginary, c1.real * c2.imaginary + c1.imaginary * c2.real);
    }

    
//overload operator(/)
    public static Complex operator /(Complex c1, Complex c2)
    {
        
return new Complex(-c1.real * c2.real + c1.imaginary * c2.imaginary, -c1.real * c2.imaginary + c1.imaginary * c2.real);
    }

    
// Override the ToString method to display an complex number in the suitable format:
    public override string ToString()
    {
        
return (String.Format("{0} + {1}i", real, imaginary));
    }
}

客户端代码:

[] args)
    {
        Complex num1 = new Complex(23);
        Complex num2 
= new Complex(34);

        
//Add two Complex objects (num1 and num2) through the overloaded plus operator:
        Complex sum_Add = num1 + num2;
        Complex sum_Minus 
= num1 - num2;
        Complex sum_Product 
= num1 * num2;
        Complex sum_Divide 
= num1 / num2;

        
//Print the numbers and the Result using the overriden ToString method:
        Console.WriteLine("First complex number:  {0}", num1);
        Console.WriteLine(
"Second complex number: {0}", num2);
        Console.WriteLine(
"The sum of the two numbers: {0}", sum_Add);
        Console.WriteLine(
"The Minus of the two numbers: {0}", sum_Minus);
        Console.WriteLine(
"The Product of the two numbers: {0}", sum_Product);
        Console.WriteLine(
"The Divide of the two numbers: {0}", sum_Divide);

        Console.ReadLine();
    }

 

运行结果:
 3i
Second complex number: 3 + 4i
The sum of the two numbers: 
5 + 7i
The Minus of the two numbers: 
-1 + -1i
The Product of the two numbers: 
-6 + 17i
The Divide of the two numbers: 
6 + 1i

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C:数组小结(1)发布时间:2022-07-13
下一篇:
RabbitMQ学习系列二-C#代码发送消息发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap