operator 只要是运算符都能重载
operator 关键字的主要作用是用来重载运算符的,还可以用于类或结构中类型的自定义转换。
下面看个例子
- class Feige
- {
-
- int a, b;
-
-
- public Feige(int a, int b)
- {
- this.a = a;
- this.b = b;
- }
-
-
- public static Feige operator +(Feige f, Feige g)
- {
- return new Feige(f.a + g.a, f.b + g.b);
- }
-
-
- public static Feige operator *(Feige f, Feige g)
- {
- return new Feige(f.a * g.a, f.b * g.b);
- }
-
-
- public static implicit operator int(Feige f)
- {
- return (int)(f.a * f.b);
- }
- }
-
- Feige fei = new Feige(2, 5);
-
- Feige ge = new Feige(3, 6);
-
- int d = (int)(fei + ge);
- int e = (int)(fei * ge);
-
-
- richTextBox1.Text += "两对象加法操作结果是:" + d + "\n";
-
- richTextBox1.Text += "两对象乘法操作结果是:" + e + "\n";