本示例展示如何使用运算符重载创建定义复数加法的复数类 Complex
。本程序使用 ToString 方法的重载显示数字的虚部和实部以及加法结果。
1
public struct Complex
2
{
3
public int real;
4
public int imaginary;
5
6
public Complex(int real, int imaginary) //constructor
7
{
8
this.real = real;
9
this.imaginary = imaginary;
10
}
11
12
// Declare which operator to overload (+),
13
// the types that can be added (two Complex objects),
14
// and the return type (Complex):
15
public static Complex operator +(Complex c1, Complex c2)
16
{
17
return new Complex(c1.real + c2.real, c1.imaginary + c2.imaginary);
18
}
19
20
// Override the ToString() method to display a complex number in the traditional format:
21
public override string ToString()
22
{
23
return (System.String.Format("{0} + {1}i", real, imaginary));
24
}
25
}
26
27
class TestComplex
28
{
29
static void Main()
30
{
31
Complex num1 = new Complex(2, 3);
32
Complex num2 = new Complex(3, 4);
33
34
// Add two Complex objects through the overloaded plus operator:
35
Complex sum = num1 + num2;
36
37
// Print the numbers and the sum using the overriden ToString method:
38
System.Console.WriteLine("First complex number: {0}", num1);
39
System.Console.WriteLine("Second complex number: {0}", num2);
40
System.Console.WriteLine("The sum of the two numbers: {0}", sum);
41
}
42
}
输出 :
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

First complex number: 2 + 3i Second complex number: 3 + 4i The sum of the two numbers: 5 + 7i