Изменение параметров собственного класса - C#
Формулировка задачи:
Я создал собственный класс. В классе описываю свойства. Ниже код (код привел не весь что бы не захламлять).
Далее я создаю этот объект
После работы с "hexagon", мне необходимо поменять его свойство "D" (или какое нибудь другое свойство).
Меняю так:
Но от свойства "D", зависят другие параметры. Как сделать, что бы пересчитывались остальные свойства зависящие от изменяемого параметра (R, b и так далее)?
public class my_hexagon { public double H { get; set; } public double D { get; set; } public double d { get; } public double R { get;} public double angle_ZX { get; set; } public my_point_double point_bottom_1 { get; } public my_hexagon() { } public my_hexagon(double Height, double Diameter, my_point_double base_point, double ZX_angle = 0, my_point_double point_of_rotate = null) { H = Height; D = Diameter; R = Math.Round(Diameter / 2.0, 10); b = Math.Round(2.0 * R * Math.Sin(30.0 * Math.PI / 180.0), 10); angle_ZX = ZX_angle; point_bottom_1 = new my_point_double(-R + base_point.X, 0 + base_point.Y, 0 + base_point.Z); point_bottom_1 = point_bottom_1.rotate(ZX_angle, point_of_rotate); } }
my_hexagon hexagon = new my_hexagon(Convert.ToDouble(dataGridView1[1, 0].Value), Convert.ToDouble(dataGridView1[0, 0].Value), point_of_displacement);
hexagon.D = 50;
Решение задачи: «Изменение параметров собственного класса»
textual
Листинг программы
public class my_hexagon { public double H { get; set; } //автоматическими делайте только независимые свойства public double D { get; set; } //... public double R { get { return Math.Round(D / 2.0, 10); } } //у зависимых нужен только аксессор get //... public my_hexagon() { } public my_hexagon(double Height, double Diameter, my_point_double base_point, double ZX_angle = 0, my_point_double point_of_rotate = null) { H = Height; //в конструкторе инициализируйте только независимые D = Diameter; //... } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д