사칙연산을 통해 알아보는 Lambda 와 Func 델리게이트 활용 - C#
델리게이트와 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 함수의 파라메터로 넘겨주면 계산된 결과가 출력이 됩니다.
'Software > C#' 카테고리의 다른 글
C#으로 만들어 보는 Sokoban Game(Winform) (0) | 2024.03.13 |
---|---|
ScottPlot Multi Axis 그리기 - C# (0) | 2024.01.18 |
항목이 여러개인 List<>에서 각각의 항목을 나누어서 배열로 변환 C# (0) | 2023.12.12 |
설정값 저장을 위한 ini 파일 과 yaml 파일 사용방법 - C# (0) | 2023.11.29 |
Tag 속성을 이용하여 RadioButton 사용 코딩 줄이기 #2 - C# (0) | 2023.08.29 |