// A feldolgozást megvalósító eseménykezelő. private void processBtn_Click(object sender, EventArgs e) { try { // Létrehozzuk a postfix kifejezést. userDefinedFormula = new UserDefinedPostFixFormula(postFixInputTextBox.Text); // Begyűjtjük a változókat a kifejezésből. var variables = userDefinedFormula.GetVariables(); // Készítünk a TextBoxokból egy kulcs-érték tárat, ahol a kulcs a változó neve, az értéke pedig a TextBox. var textBoxes = new Dictionary <string, TextBox> { { "a", aValue }, { "b", bValue }, { "c", cValue } }; foreach (var variable in textBoxes.Keys) { // Az adott textboxot csak olvashatóvá tesszük, hogyha nem található benne a változó. textBoxes[variable].ReadOnly = !variables.Contains(variable); } // Ha minden végigfutott, akkor a kiértékelő gombot engedélyzzük. evaluateBtn.Enabled = true; } catch { // Ha nem sikerült feldolgozni, akkor kinullozzuk a privát tagváltozót, és a kiértékelő gombot letiltjuk. userDefinedFormula = null; evaluateBtn.Enabled = false; } }
public List <string> GetVariables() { // A változók listája pedig a két operandus változóinak uniója. return(firstOperand.GetVariables().Union(secondOperand.GetVariables()).ToList()); }