[C# 문법] C# Enum(열거형) 제너릭 메서드 사용 방법
- C#/C# 문법
- 2019. 12. 31. 01:00
안녕하세요.
오늘은 C# 문법에서 Enum을 제너릭 메서드로 생성하여 사용하는 방법에 대해서 알려드리려고 합니다.
회사에서 소스코드를 작성하다가 Enum을 여러 개 선언하여 코드를 작성하였는데요. 다시 소스코드를 들여다 보니까 Enum 형태만 다르고 나머지 내부 로직은 동일한 소스라서 중복되는 것을 알게 되었습니다.
그래서 이 부분을 어떻게 하나의 메서드로 바꿀 순 없을까 하다가 Enum 또한 제너릭 메서드로 만들어서 사용할 수 있다는 것을 알게 되었습니다.
우선 아래 두 개의 Enum을 만들고 Enum을 반목문으로 돌려서 출력해 보도록 할게요.
Enum 반복문 예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Generic { class Program { public enum FRUIT { APPLE, MELON, WATERMELON, BANANA, PEACH }; public enum COLOR { RED, BLACK, BLUE, GREEN, YELLOW }; static void Main(string[] args) { //enum 반복문으로 출력 foreach (FRUIT item in Enum.GetValues(typeof(FRUIT))) { Console.WriteLine("item : {0}", item.ToString()); }
Console.WriteLine("--------------------------------");
//enum 반복문으로 출력 foreach (COLOR item in Enum.GetValues(typeof(COLOR))) { Console.WriteLine("item : {0}", item.ToString()); } } } }
|
실행 결과
위와 같이 반복문을 이용해서 enum문을 출력했는데요.
위에서 예제코드를 보시게 되면 foreach문이 내부 enum 타입만 다르지 내부 로직은 같은 경우인데 2번이나 반복돼서 사용된 것을 보실 수 있습니다.
물론 잘못 되었다는 것은 아니지만..그래도 같은 로직이 여러 번 반복되면 코드도 길어지고 가독성도 떨어지고 해서 그냥 메서드로 생성해서 사용하는게 좋지 않을까 생각하여 저는 저 부분을 메서드로 만들려고 합니다.
enum문 제너릭 메서드 생성 예제코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace Generic { class Program { public enum FRUIT { APPLE, MELON, WATERMELON, BANANA, PEACH }; public enum COLOR { RED, BLACK, BLUE, GREEN, YELLOW }; static void Main(string[] args) { SetEnumData<FRUIT>();
Console.WriteLine("--------------------------------");
SetEnumData<COLOR>(); }
public static void SetEnumData<TEnum>() { //Enum 타입 받아온다. Type enumType = typeof(TEnum);
//enum 반복문으로 출력 foreach (Enum item in Enum.GetValues(enumType)) { Console.WriteLine("item : {0}", item.ToString()); } } } }
|
실행 결과
이처럼, enum 반목문을 제너릭 메서드로 만들어서 Main문에서 호출만 하면 이전 보다 훨신 코드도 간결해지면서, 실제 프로젝트에서는 하나의 메서드만 있는 경우라서 향후에 유지보수도 쉽고 코드 가독성도 좋아지지 않을까 생각합니다.
이렇게 오늘은 enum 구문을 제너릭 메서드로 만드는 방법에 대해서 알아보았습니다!^^
글 읽어 주셔서 감사합니다.
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] C# Math 클래스 사용 및 메서드 종류 (0) | 2020.01.02 |
---|---|
[C# 문법] C# DataTable 에서 저장된 값들 Null 체크하는 방법 (0) | 2020.01.01 |
[C# 문법] C# 제너릭 메서드란? 제너릭 메서드 (Generic Method) 사용방법 (0) | 2019.12.30 |
[C# 문법] C# List를 DataTable로 변환하는 방법 (0) | 2019.12.29 |
[C# 문법] C# Linq 이용하여 DataTable 에서 특정 컬럼들 List로 가져오는 방법 (0) | 2019.12.28 |
이 글을 공유하기