57 lines
1.5 KiB
Markdown
57 lines
1.5 KiB
Markdown
![]() |
#unity/日常积累
|
|||
|
|
|||
|
operator 只要是运算符都能重载
|
|||
|
|
|||
|
operator 关键字的主要作用是用来重载运算符的,还可以用于类或结构中类型的自定义转换。
|
|||
|
|
|||
|
下面看个例子
|
|||
|
|
|||
|
``` cs
|
|||
|
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);//调用运算符*函数
|
|||
|
|
|||
|
//两对象加法操作结果是:55
|
|||
|
richTextBox1.Text += "两对象加法操作结果是:" + d + "\n";
|
|||
|
//两对象乘法操作结果是:180
|
|||
|
richTextBox1.Text += "两对象乘法操作结果是:" + e + "\n";
|
|||
|
|
|||
|
|
|||
|
|
|||
|
```
|