Изменение параметров собственного класса - C#

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

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

Я создал собственный класс. В классе описываю свойства. Ниже код (код привел не весь что бы не захламлять).
Листинг программы
  1. public class my_hexagon
  2. {
  3. public double H { get; set; }
  4. public double D { get; set; }
  5. public double d { get; }
  6. public double R { get;}
  7. public double angle_ZX { get; set; }
  8. public my_point_double point_bottom_1 { get; }
  9. public my_hexagon() { }
  10. public my_hexagon(double Height, double Diameter, my_point_double base_point, double ZX_angle = 0, my_point_double point_of_rotate = null)
  11. {
  12. H = Height;
  13. D = Diameter;
  14. R = Math.Round(Diameter / 2.0, 10);
  15. b = Math.Round(2.0 * R * Math.Sin(30.0 * Math.PI / 180.0), 10);
  16. angle_ZX = ZX_angle;
  17. point_bottom_1 = new my_point_double(-R + base_point.X, 0 + base_point.Y, 0 + base_point.Z);
  18. point_bottom_1 = point_bottom_1.rotate(ZX_angle, point_of_rotate);
  19. }
  20. }
Далее я создаю этот объект
Листинг программы
  1. my_hexagon hexagon = new my_hexagon(Convert.ToDouble(dataGridView1[1, 0].Value), Convert.ToDouble(dataGridView1[0, 0].Value), point_of_displacement);
После работы с "hexagon", мне необходимо поменять его свойство "D" (или какое нибудь другое свойство). Меняю так:
Листинг программы
  1. hexagon.D = 50;
Но от свойства "D", зависят другие параметры. Как сделать, что бы пересчитывались остальные свойства зависящие от изменяемого параметра (R, b и так далее)?

Решение задачи: «Изменение параметров собственного класса»

textual
Листинг программы
  1. public class my_hexagon
  2. {
  3.     public double H { get; set; } //автоматическими делайте только независимые свойства
  4.     public double D { get; set; }
  5.     //...
  6.     public double R { get { return Math.Round(D / 2.0, 10); } } //у зависимых нужен только аксессор get
  7.     //...
  8.  
  9.     public my_hexagon() { }
  10.     public my_hexagon(double Height, double Diameter, my_point_double base_point, double ZX_angle = 0, my_point_double point_of_rotate = null)
  11.     {
  12.         H = Height; //в конструкторе инициализируйте только независимые
  13.         D = Diameter;
  14.         //...
  15.     }
  16. }

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


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

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

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

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

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

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