본문 바로가기
프로그래밍/c#

C# 지역 함수?? 지역 함수의 예제와 활용

by 지나팩 2024. 11. 5.

C# 7.0부터 메소드 내에서 지역 함수를 선언할 수 있게 되었습니다.

지역 함수는 메소드 내부에서만 호출할 수 있는 작은 함수로,

주로 특정 작업을 분리해 코드의 가독성을 높이고, 로직을 좀 더 구조화하는 데 유용합니다.

지역 함수가 유용한 상황

  1. 코드 분리: 복잡한 메소드 로직을 작게 나누어 가독성을 높일 수 있습니다.
  2. 코드 재사용: 메소드 내에서 반복되는 코드를 따로 분리해 재사용성을 높일 수 있습니다.
  3. 캡슐화: 지역 함수는 해당 메소드 안에서만 사용되므로 외부에서 접근할 수 없고, 코드의 캡슐화가 강화됩니다.
  4. 로컬 변수 접근: 지역 함수는 상위 메소드의 로컬 변수와 매개변수에 접근할 수 있어, 필요한 데이터를 추가로 전달하지 않고 사용할 수 있습니다.

 

 

 

 

 

 

이제 예제를 통해 지역 함수를 활용하는 방법을 살펴보겠습니다.

 

 

예제: 숫자 배열에서 짝수의 합과 홀수의 합을 구하기

1. 지역 함수를 사용하지 않은 경우

먼저, 지역 함수를 사용하지 않은 코드입니다. 배열의 숫자를 순회하며 짝수와 홀수를 구분해 각각의 합을 계산하는 메소드를 작성합니다.

 

  • number % 2 == 0 조건을 통해 짝수 여부를 판단합니다.
  • 짝수와 홀수의 합을 계산하는 메소드가 하나의 로직에 모든 조건을 포함하고 있어, 코드의 가독성이 낮아질 수 있습니다.

단점

  • 코드가 간단할 때는 문제가 없지만, 복잡한 로직이 추가되면 가독성이 떨어집니다.
  • 짝수 여부 판단 로직이 반복적으로 사용될 때 코드 중복이 발생할 가능성이 있습니다.
  • 특정 로직이 캡슐화되지 않아, 메소드를 확장하거나 유지보수할 때 불편할 수 있습니다.

 

 

 

 

 

 

 

 

 

2. 지역 함수를 사용한 경우

이제 동일한 메소드를 지역 함수를 활용하여 작성해 보겠습니다.

 

  • IsEven 지역 함수를 추가하여 짝수 여부 판단 로직을 분리했습니다.
  • CalculateSums 메소드 내부에서만 호출할 수 있으며, 외부에서는 접근할 수 없습니다.
  • 로직이 분리되어 메소드의 가독성이 높아지고, 짝수 여부 판단 로직을 필요에 따라 쉽게 재사용할 수 있습니다.

 

 

 

 

 

 

 

지역 함수 사용 시의 장점

  1. 가독성 향상: 메인 로직에서 특정 작업을 분리하여 코드를 이해하기 쉽게 만듭니다.
  2. 중복 제거: 반복적으로 사용되는 로직을 지역 함수로 분리함으로써 중복 코드를 방지할 수 있습니다.
  3. 캡슐화: 지역 함수는 메소드 내부에서만 사용되므로, 외부에서 접근할 수 없고 코드의 일관성과 보안이 향상됩니다.
  4. 유지보수 용이: 지역 함수로 분리된 로직은 개별적으로 관리할 수 있어 유지보수가 쉬워집니다.

 

지역 함수를 사용하면 코드가 더 모듈화되고, 가독성이 좋아지며 유지보수하기 쉬워집니다. 특히, 특정 작업을 여러 번 수행하거나 복잡한 로직을 메소드 안에서 정리하고 싶을 때 유용합니다. 반면, 지역 함수를 사용하지 않으면 메소드가 복잡해지기 쉬우며, 특정 작업이 반복되면 코드 중복이 발생할 수 있습니다.

 

지역 함수를 사용하는 것은 선택 사항이지만, 코드의 일관성과 유지보수를 고려할 때 좋은 습관입니다. C#의 강력한 기능 중 하나인 지역 함수를 적절히 활용해 가독성 높고 유지보수하기 쉬운 코드를 작성해 보세요!

댓글