您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)C#中怎么通過運算符重載實現(xiàn)復(fù)數(shù)運算,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
C#運算符重載實現(xiàn)復(fù)數(shù)運算的由來:函數(shù)的重載——同名函數(shù),不同的參數(shù)(包括參數(shù)個數(shù)不同和參數(shù)個數(shù)相同但個數(shù)不同)
將其引申,像如下的代碼:
int i=5; int j=2; int sum=i+j;
如果沒有自定義的C#運算符重載,像+,-,*,/這樣的運算符只能用于預(yù)定義的數(shù)據(jù)類型,編譯器認(rèn)為所有常見的運算符都是用于這些數(shù)據(jù)類型的。
問題來了,如果我要對兩個復(fù)數(shù)或矩陣進行四則運算,就需要我們自己擴展運算符重載函數(shù)了。
C#運算符重載之示例:復(fù)數(shù)的四則運算
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#運算符重載實例運行結(jié)果:
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
看完上述內(nèi)容,你們對C#中怎么通過運算符重載實現(xiàn)復(fù)數(shù)運算有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。