Как исправить ошибку (обобщённые типы)? - C#
Формулировка задачи:
Вот дано задание:
Задание 3
. Создать обобщенный класс в соответствии с вариантом задания, реализовать методы класса. Написать программу тестирования, в которой проверяется использование обобщенного класса для стандартных типов данных.Вариант 6
Класс: прямоугольный треугольник. Поля: длины сторон. Методы: конструктор с параметрами, вычисление периметра и площади.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3_1
{
class Triangle<T>
{
T a;
T b;
T c;
public Triangle() { }
public Triangle(T a, T b, T c)
{
this.a = a;
this.b = b;
this.c = c;
}
public T P (T a, T b, T c)
{
return a as dynamic + b + c;
}
public T S (T a, T b, T c)
{
dynamic p = (a as dynamic + b + c) / 2;
return Math.Sqrt(p * (p - a as dynamic) * (p - b) * (p - c)); // тут выдаёт ошибку
}
}
class Program
{
static void Main(string[] args)
{
Triangle<int> Tr1 = new Triangle<int>();
Console.WriteLine(Tr1.P(3, 4, 5));
Console.WriteLine(Tr1.S(3, 4, 5));
Console.ReadLine();
}
}Решение задачи: «Как исправить ошибку (обобщённые типы)?»
textual
Листинг программы
return (T) Math.Sqrt(p * (p - a as dynamic) * (p - b) * (p - c));