温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#中怎么通过运算符重载实现复数运算

发布时间:2021-07-07 16:17:26 来源:亿速云 阅读:145 作者:Leah 栏目:编程语言

今天就跟大家聊聊有关C#中怎么通过运算符重载实现复数运算,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

C#运算符重载实现复数运算的由来:函数的重载——同名函数,不同的参数(包括参数个数不同和参数个数相同但个数不同)

将其引申,像如下的代码:

int i=5;  int j=2;  int sum=i+j;

如果没有自定义的C#运算符重载,像+,-,*,/这样的运算符只能用于预定义的数据类型,编译器认为所有常见的运算符都是用于这些数据类型的。
问题来了,如果我要对两个复数或矩阵进行四则运算,就需要我们自己扩展运算符重载函数了。

C#运算符重载之示例:复数的四则运算

public struct 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));      }  }

C#运算符重载之客户端代码:

static void Main(string[] args)  {      Complex num1 = new Complex(2, 3);      Complex num2 = new Complex(3, 4);       //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();  }

C#运算符重载实例运行结果:

First complex number:  2 + 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

看完上述内容,你们对C#中怎么通过运算符重载实现复数运算有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI