【发布时间】:2011-04-14 11:54:10
【问题描述】:
public class Racional<T>
{
private T nominator;
private T denominator;
public T Nominator
{
get { return nominator; }
set { nominator = value; }
}
public T Denominator
{
get { return denominator; }
set { denominator = value; }
}
public Racional(T nominator, T denominator)
{
this.nominator = nominator;
this.denominator = denominator;
}
public static Racional<int> operator *(Racional<int> a, Racional<int> b)
{
return ((int)(a.nominator + b.nominator, a.denominator + b.denominator));
}
public override string ToString()
{
return "(" + this.nominator + " " + this.denominator + ")";
}
}
我对这部分很感兴趣:
public static Racional<int> operator *(Racional<int> a, Racional<int> b)
{
return ((int)(a.nominator + b.nominator, a.denominator + b.denominator));
}
怎么了:
二元运算符的参数之一必须是包含类型
我如何才能对这部分进行正常编码以进行数学运算?
【问题讨论】:
-
顺便说一句,这是一个家庭作业还是您打算在生产代码中使用它?查看msdn.microsoft.com/en-us/library/…
-
您可能希望将类名更改为 Rational...
-
为什么要创建一个开箱即用的由框架处理的类?如果这是家庭作业,这是一种可怕的做法。
-
@Roy:我认为它是英语以外的语言。至少他发布了他的实际代码,而不是冒着出现不相关的印刷错误的风险。
-
在这里等一下,你是说 1/2 * 2/3 = 3/5 ?这段代码不仅不能编译,而且没有任何意义。你是说有理数具有任意类型作为分子和分母? 为什么这是通用的?有理数定义为两个整数之比。你可以有整数、字符串、异常等等。这段代码对我没有任何意义。你能解释一下吗?