Изменение параметров собственного класса - 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;
//...
}
}