5.3 C# - enum
01. 목표
더보기
01.1
이번에서는 산술연산 기능을 구현합니다.
01.2
이전 포스트에서 작업했던 Calculator 예제를 이어갑니다.
이전 포스트 작업물이 없다면, Calculator 예제를 다운받고 확인합니다.
02. 산술연산 기능 구현하기
더보기
02.1 사칙연산(+, -, *, /) 식별을 위한 enum 자료형 만들기
public enum SelectedOperator
{
Addition,
Subtraction,
Multipliction,
Division
}
02.2 사칙연산(+, -, *, /) 로직 만들기
public class SimpleMath
{
public static double Add(double n1, double n2) { return n1 + n2; }
public static double Subtraction(double n1, double n2) { return n1 - n2; }
public static double Multiply(double n1, double n2) { return n1 * n2; }
public static double Divide(double n1, double n2) { return n1 / n2; }
}
02.3 피연산자 값과, 사칙연산(+, -, *, /) 데이터 저장시키기
// 사칙 연산 버튼 누르기 전에 입력된 숫자를 lastNumber에 저장한다.
double lastNumber, result;
// 어떤 사칙 연산 버튼이 눌러졌는지 저장한다.
private SelectedOperator selectedOperator;
private void OperationButton_Click(object sender, RoutedEventArgs e)
{
// 사칙연산 버튼을 누르면, 이전에 입력된 숫자는 lastNumber 변수에 저장되고
if (double.TryParse(resultLabel.Content.ToString(), out lastNumber))
{
// 레이블엔 0을 출력한다.
resultLabel.Content = "0";
}
// 그리고 selectedOperator 변수에, 어떤 사칙연산 버튼이 입력되었는지 저장한다.
if (sender == plusButton)
selectedOperator = SelectedOperator.Addition;
if (sender == minusButton)
selectedOperator = SelectedOperator.Subtraction;
if (sender == multiplicationButton)
selectedOperator = SelectedOperator.Multipliction;
if (sender == devideButton)
selectedOperator = SelectedOperator.Division;
}
02.4 계산 결과 로직 구현
private void EqualButton_Click(object sender, RoutedEventArgs e)
{
// 마지막 피연산자(입력 숫자)를 newNumber 변수에 저장하고
if (double.TryParse(resultLabel.Content.ToString(), out double newNumber))
{
// 이전에 입력받은 연산자를 식별하여,
switch (selectedOperator)
{
// 해당 연산자 사칙연산 로직이 실행되도록 분기한다.
case SelectedOperator.Addition:
result = SimpleMath.Add(lastNumber, newNumber);
break;
case SelectedOperator.Subtraction:
result = SimpleMath.Subtraction(lastNumber, newNumber);
break;
case SelectedOperator.Multipliction:
result = SimpleMath.Multiply(lastNumber, newNumber);
break;
case SelectedOperator.Division:
result = SimpleMath.Divide(lastNumber, newNumber);
break;
}
}
resultLabel.Content = result.ToString();
}
3. 실행 결과 확인