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

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

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

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

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

textual
Листинг программы
  1.     public class MathObject {
  2.         public double Area(ref Romb R) {
  3.             if (R.Diagd != 0 && R.DiagD != 0)
  4.                 return 0.5 * R.Diagd * R.DiagD;
  5.             if (R.Side != 0 && R.Side != 0)
  6.                 return R.Side * R.Side * Math.Sin(R.Anglec);
  7.             return 0;
  8.         }
  9.     }
  10.  
  11.     static class ExtensionMO {
  12.         public static bool TestArea(this MathObject obj, Romb R, double a, double b) {
  13.             double Area = a * b;
  14.             double AreaR = obj.Area(ref R);
  15.             if (Area < AreaR)
  16.                 return false;
  17.             return true;
  18.         }
  19.     }

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


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

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

9   голосов , оценка 4.111 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы