C#中模版定义时的错误,高手帮忙看看

来源:百度知道 编辑:UC知道 时间:2024/05/05 17:08:59
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Together
{
abstract class Shape<T>
{
protected T Length;
protected T Width;
public Shape(T length, T width)
{
Length = length;
Width = width;
}
public double Area()
{
return Length * Width; //这里错了
}
public double Perimeter()
{
return 2 * (Length + Width);
}

}

class Rectangle : Shape<double>
{
public Rectangle(double length, double width) : base(length, width) { }

}

}
错误提示:错误 1 运算符“*”无法应用于“T”和“T”类型的操作数 C:\Documents and Settings\Administrator\桌面\程序\c#\Together\Together\Shape.cs 19 21 To

T 类型不能用于计算,用short int long float double 类型的用于计算。

T是什么类型哟?绝对不是计算类型,用强制转换试试

(double)length*(double)width或
double.pare(length)*double.pare(width)

pare这个是不完整的,因为我记不得全部了,不过按.再输入了这个pare会有完整提示出来的

如果还是不行就把T类型换了,换成double类型吧