比如一个类
class Class1
{
public int x = 0;
public int y = 0;
public Class1()
{
}
}
两个改类的实例 c1,c2
要求实现+运算符号(比如string中的 str1+=str2);
要求实现 c1+=c2;
结果是 c1的x,y值是c1,c2的值的和.
class Class1
{
public int x = 0;
public int y = 0;
public Class1()
{
}
}
两个改类的实例 c1,c2
要求实现+运算符号(比如string中的 str1+=str2);
要求实现 c1+=c2;
结果是 c1的x,y值是c1,c2的值的和.
解决方案 »
- 在c#中用ZedGraph画图请教
- dll注入失败
- 如何使用API?
- 生成静态页面应该怎么做?
- GridView中如何限制每个单元格字数
- 财付通安全控件,如何自动输入密码?
- 怎样用C#语句实现 <asp:ListItem Value="face01">face01</asp:ListItem> 的循环
- 应用程序访问数据库的操作在后台代码中实现,当客户端访问时客户端电脑会不会直接连接数据库?
- C#: new SqlConnection()时产生TypeInitializationException
- 从c++Builder到vs.net难吗?
- 怎样用按钮事件弹出记事本,。。。。。。。。。。。。。。。。。。。。。
- ★★如何自动监测对象中数据的变化
class Fraction
{
int num, den;
public Fraction(int num, int den)
{
this.num = num;
this.den = den;
} // overload operator +
public static Fraction operator +(Fraction a, Fraction b)
{
return new Fraction(a.num * b.den + b.num * a.den,
a.den * b.den);
} // overload operator *
public static Fraction operator *(Fraction a, Fraction b)
{
return new Fraction(a.num * b.num, a.den * b.den);
} // define operator double
public static implicit operator double(Fraction f)
{
return (double)f.num / f.den;
}
} 补充 参数
result-type 运算符的结果类型。
unary-operator 下列运算符之一:+ - ! ~ ++ — true false
op-type 第一个(或唯一一个)参数的类型。
operand 第一个(或唯一一个)参数的名称。
binary-operator 其中一个:+ - * / % & | ^ << >> == != > < >= <=
op-type2 第二个参数的类型。
operand2 第二个参数的名称。
conv-type-out 类型转换运算符的目标类型。
conv-type-in 类型转换运算符的输入类型。 =号不可以重载
{
public int x = 0;
public int y = 0;
public Class1()
{
}
public static Class1 operator + (Class1 c1,Class1 c2)
{
Class1 re = new Class1();
re.x = c1.x+c2.x;
re.y = c1.y +c2.y;
return re;
}
}
本来想重载+= 和 -=呢, 后来才知道不可以!,
using System;
using System.Collections.Generic;
using System.Text;namespace test1
{
class Class1
{
public int x = 0;
public int y = 0;
public Class1()
{
}
public Class1(int x1,int y1)
{
x = x1;
y = y1;
}
public static Class1 operator +( Class1 c1, Class1 c2)
{
int x1 = c1.x + c2.x;
int y1 = c1.y + c2.y;
Class1 c3 = new Class1();
c3.x = x1;
c3.y = y1;
return c3;
}
public static Class1 operator ++(Class1 c1)
{
int x1 = c1.x + c1.x;
int y1 = c1.y + c1.y;
Class1 c3 = new Class1();
c3.x = x1;
c3.y = y1;
return c3;
}
}
}