Exemple #1
0
        // 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());
 }