C# 7.0부터 메소드 내에서 지역 함수를 선언할 수 있게 되었습니다.
지역 함수는 메소드 내부에서만 호출할 수 있는 작은 함수로,
주로 특정 작업을 분리해 코드의 가독성을 높이고, 로직을 좀 더 구조화하는 데 유용합니다.
지역 함수가 유용한 상황
- 코드 분리: 복잡한 메소드 로직을 작게 나누어 가독성을 높일 수 있습니다.
- 코드 재사용: 메소드 내에서 반복되는 코드를 따로 분리해 재사용성을 높일 수 있습니다.
- 캡슐화: 지역 함수는 해당 메소드 안에서만 사용되므로 외부에서 접근할 수 없고, 코드의 캡슐화가 강화됩니다.
- 로컬 변수 접근: 지역 함수는 상위 메소드의 로컬 변수와 매개변수에 접근할 수 있어, 필요한 데이터를 추가로 전달하지 않고 사용할 수 있습니다.
이제 예제를 통해 지역 함수를 활용하는 방법을 살펴보겠습니다.
예제: 숫자 배열에서 짝수의 합과 홀수의 합을 구하기
1. 지역 함수를 사용하지 않은 경우
먼저, 지역 함수를 사용하지 않은 코드입니다. 배열의 숫자를 순회하며 짝수와 홀수를 구분해 각각의 합을 계산하는 메소드를 작성합니다.
- number % 2 == 0 조건을 통해 짝수 여부를 판단합니다.
- 짝수와 홀수의 합을 계산하는 메소드가 하나의 로직에 모든 조건을 포함하고 있어, 코드의 가독성이 낮아질 수 있습니다.
단점
- 코드가 간단할 때는 문제가 없지만, 복잡한 로직이 추가되면 가독성이 떨어집니다.
- 짝수 여부 판단 로직이 반복적으로 사용될 때 코드 중복이 발생할 가능성이 있습니다.
- 특정 로직이 캡슐화되지 않아, 메소드를 확장하거나 유지보수할 때 불편할 수 있습니다.
2. 지역 함수를 사용한 경우
이제 동일한 메소드를 지역 함수를 활용하여 작성해 보겠습니다.
- IsEven 지역 함수를 추가하여 짝수 여부 판단 로직을 분리했습니다.
- CalculateSums 메소드 내부에서만 호출할 수 있으며, 외부에서는 접근할 수 없습니다.
- 로직이 분리되어 메소드의 가독성이 높아지고, 짝수 여부 판단 로직을 필요에 따라 쉽게 재사용할 수 있습니다.
지역 함수 사용 시의 장점
- 가독성 향상: 메인 로직에서 특정 작업을 분리하여 코드를 이해하기 쉽게 만듭니다.
- 중복 제거: 반복적으로 사용되는 로직을 지역 함수로 분리함으로써 중복 코드를 방지할 수 있습니다.
- 캡슐화: 지역 함수는 메소드 내부에서만 사용되므로, 외부에서 접근할 수 없고 코드의 일관성과 보안이 향상됩니다.
- 유지보수 용이: 지역 함수로 분리된 로직은 개별적으로 관리할 수 있어 유지보수가 쉬워집니다.
지역 함수를 사용하면 코드가 더 모듈화되고, 가독성이 좋아지며 유지보수하기 쉬워집니다. 특히, 특정 작업을 여러 번 수행하거나 복잡한 로직을 메소드 안에서 정리하고 싶을 때 유용합니다. 반면, 지역 함수를 사용하지 않으면 메소드가 복잡해지기 쉬우며, 특정 작업이 반복되면 코드 중복이 발생할 수 있습니다.
지역 함수를 사용하는 것은 선택 사항이지만, 코드의 일관성과 유지보수를 고려할 때 좋은 습관입니다. C#의 강력한 기능 중 하나인 지역 함수를 적절히 활용해 가독성 높고 유지보수하기 쉬운 코드를 작성해 보세요!
'프로그래밍 > c#' 카테고리의 다른 글
Unity c#에서 자주 사용하는 코루틴: IEnumerator와 IEnumerable 차이점 쉽게 이해하기 (0) | 2024.11.14 |
---|---|
c# 확장 메소드(Extension Method)?? 확장 메소드란 무엇인가? 사용방법과 예제 (4) | 2024.11.04 |
c# 비동기 프로그래밍 async, await (0) | 2024.10.01 |
c# 튜플? Tuple? (0) | 2024.08.01 |
c# 인덱서? Indexer? 인덱서의 특징과 예제 (0) | 2024.05.03 |
댓글