Как получить переменную из массива объектов? - C#
Формулировка задачи:
Создал массив объектов. В массив запихнул [TextBox, double].
Далее перебираю в цикле элементы массива.
У меня не получается в глобальные переменные (my_class.variables.main_plate_width... ) передать значение. Как это сделать?
public static bool calculate()
{
bool further;
object[,] text_box_and_variables = new object[,]
{
{ my_class.text_box.main_plate_width, my_class.variables.main_plate_width },
{ my_class.text_box.main_plate_length, my_class.variables.main_plate_length },
{ my_class.text_box.main_plate_height, my_class.variables.main_plate_height }
};
for (int i = 0; i < 2; i++)
{
double a = (double)text_box_and_variables[i, 1]; // здесь наверное проблема
TextBox tb = (TextBox)text_box_and_variables[i, 0];
further = Double.TryParse(tb.Text, out a); // переменная "my_class.variables.main_plate_width" (и остальные переменные) не принимает нового значения
if (further) { tb.BackColor = Color.White; } // здесь все ок
else { tb.BackColor = Color.Pink; return false; } // здесь все ок
};
return true;
}Решение задачи: «Как получить переменную из массива объектов?»
textual
Листинг программы
private void Form1_Load(object sender, EventArgs e)
{
GlobalStuff.main_plate_width = new KVPair<TextBox, double>() { Key = textBox_plate_width, Value = 0 };
GlobalStuff.main_plate_length = new KVPair<TextBox, double>() { Key = textBox_plate_length, Value = 0 };
GlobalStuff.main_plate_height = new KVPair<TextBox, double>() { Key = textBox_plate_height, Value = 0 };
}
public class KVPair<K, V>
{
public K Key { get; set; }
public V Value { get; set; }
}
public static class GlobalStuff
{
public static KVPair<TextBox, double> main_plate_width;
public static KVPair<TextBox, double> main_plate_length;
public static KVPair<TextBox, double> main_plate_height;
}
public static class my_class
{
public static void calculate()
{
KVPair<TextBox, double>[] stuff = new KVPair<TextBox, double>[]
{
GlobalStuff.main_plate_width,
GlobalStuff.main_plate_length,
GlobalStuff.main_plate_height
};
for (int i = 0; i < 3; i++)
{
stuff[i].Key.BackColor = Color.Pink;
stuff[i].Value = 9;
};
}
}