Расширить статический класс - C#

Узнай цену своей работы

Формулировка задачи:

Хай. Есть класс:
static class MathObject
{
    public static double Area(ref Romb R)
    {
        if(R.Diagd != 0 && R.DiagD != 0)
            return 0.5 * R.Diagd * R.DiagD;
        if (R.Side != 0 && R.Side != 0)
            return R.Side * R.Side * Math.Sin(R.Anglec);
        return 0;
    }
}
Я пытаюсь его расширить:
static class ExtensionMO
{
    public static bool TestArea(this MathObject obj, Romb R,double a,double b)
    {
        double Area = a * b;
        double AreaR = MathObject.Area(ref R);
        if (Area < AreaR)
            return false;
        return true;
    }  
}
Ругается на то, что нельзя использовать статические типы в виде параметров (this MathObject obj). Как это можно обойти? Спасибо.

Решение задачи: «Расширить статический класс»

textual
Листинг программы
    public class MathObject {
        public double Area(ref Romb R) {
            if (R.Diagd != 0 && R.DiagD != 0)
                return 0.5 * R.Diagd * R.DiagD;
            if (R.Side != 0 && R.Side != 0)
                return R.Side * R.Side * Math.Sin(R.Anglec);
            return 0;
        }
    }
 
    static class ExtensionMO {
        public static bool TestArea(this MathObject obj, Romb R, double a, double b) {
            double Area = a * b;
            double AreaR = obj.Area(ref R);
            if (Area < AreaR)
                return false;
            return true;
        }
    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы