사칙연산을 통해 알아보는 Lambda 와 Func 델리게이트 활용 - C#

Software/C#|2023. 12. 23. 10:14
반응형

델리게이트와 lambda 에 대해 공부를 하면서 어느경우에 써먹을 수 있나 생각을 많이 하게 됩니다. 

이번 포스팅에서는 간단하게 사칙연산을 위한 lambda 와 Func 델리케이트의 활용에 대해 포스팅 해 보았습니다. 

 

 

위와 같이 폼을 하나 구성하고 콤보 박스에 각연산에 대한 항목을 Items 에 추가하고 이벤트 함수를 만들면 됩니다. 

 

        private double calculate(Func<double, double, double> func, double a, double b)
        {
            var result = func(a, b);
            return result;
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var a = double.Parse(textBox1.Text);
            var b = double.Parse(textBox2.Text);

            switch(comboBox1.SelectedIndex) 
            {
                case 0: textBox3.Text = calculate((i, j) => { return (i + j); }, a, b).ToString(); break;
                case 1: textBox3.Text = calculate((i, j) => { return (i - j); }, a, b).ToString(); break;
                case 2: textBox3.Text = calculate((i, j) => { return (i * j); }, a, b).ToString(); break;
                case 3: textBox3.Text = calculate((i, j) => { return (i / j); }, a, b).ToString(); break;
            }
        }

 

* calculate 함수는 Func 델리케이트와 피 연산자 값을  파라메터로 받는 함수입니다. 

* 콤보막스의 SelectedIndexChanged 이벤트 함수에서 switch-case 문을 이용하여 각각의 연산에 맞는 lambda 함수를 만들어 calculate 함수의 파라메터로 넘겨주면 계산된 결과가 출력이 됩니다. 

반응형

댓글()