대부분의 프로그래밍 언어에서는 enum이라는 것을 지원합니다.
enum은 프로그래머가 원하는 상수를 만들 수 있는데요. 프로그래밍에서 enum을 사용하는 것은 매우 중요합니다. 잘 사용하면 정말 효율적이죠.
우선 enum을 만드는 방법부터 알아보겠습니다.
public enum Grade
{
A,
B,
C,
D,
F
}
이런식으로 접근제한자 다음에 enum이라는 키워드를 적고 해당 enum의 이름을 적어주면 됩니다. 그리고 안에 해당 enum들의 원소를 적어줍니다.
enum을 사용하는 프로그래머가 볼때는 글자이지만, 내부적으로 숫자로 인식됩니다. 선언된 순서대로 0, 1, 2, 3, 4라는 숫자가 지정됩니다. 이건 기본값이고 원하면 숫자를 지정하는 것도 가능합니다.
public enum Grade
{
A = 5,
B = 4,
C = 3,
D = 2,
F = 0
}
이렇게 다른 숫자를 지정해서 사용할 수 있습니다. 저는 개인적으로 이런식으로 숫자 지정하는 것은 피해라라고 하고 싶어요.
각 열거형에 특정한 값을 지정하고 싶다면 attribute를 이용하는 것이 효과적입니다. 열거형의 숫자는 내부적으로 컴퓨터가 사용하는 것이기 때문에 기본값을 사용하는 것이 좋아요.
하지만 기본값을 사용하지 않는 경우가 있는데요. 비트플래그를 사용하는 경우입니다.
비트플래그에 대해서는 다른 글에서 다루겠습니다.
마지막으로 enum을 사용하는 방법을 알아보겠습니다.
public class Student
{
public Grade mathGrade = Grade.A;
.....
}
이런식으로 사용할 enum인 Grade를 적고 . 을 이용해서 원소를 적어줍니다. 열거형의 경우 등호나 부등호를 이용하서 비교하는 것이 가능하고 조건문이나 switch문에서도 활용할 수 있습니다. 열거형을 많이 사용하면 코드가 읽기 쉽고 깔끔해지는 장점이 있습니다.
개인적으로 enum을 많이 쓰는 것을 권장하고 있어요.
enum은 프로그래머가 원하는 상수를 만들 수 있는데요. 프로그래밍에서 enum을 사용하는 것은 매우 중요합니다. 잘 사용하면 정말 효율적이죠.
우선 enum을 만드는 방법부터 알아보겠습니다.
public enum Grade
{
A,
B,
C,
D,
F
}
이런식으로 접근제한자 다음에 enum이라는 키워드를 적고 해당 enum의 이름을 적어주면 됩니다. 그리고 안에 해당 enum들의 원소를 적어줍니다.
enum을 사용하는 프로그래머가 볼때는 글자이지만, 내부적으로 숫자로 인식됩니다. 선언된 순서대로 0, 1, 2, 3, 4라는 숫자가 지정됩니다. 이건 기본값이고 원하면 숫자를 지정하는 것도 가능합니다.
public enum Grade
{
A = 5,
B = 4,
C = 3,
D = 2,
F = 0
}
이렇게 다른 숫자를 지정해서 사용할 수 있습니다. 저는 개인적으로 이런식으로 숫자 지정하는 것은 피해라라고 하고 싶어요.
각 열거형에 특정한 값을 지정하고 싶다면 attribute를 이용하는 것이 효과적입니다. 열거형의 숫자는 내부적으로 컴퓨터가 사용하는 것이기 때문에 기본값을 사용하는 것이 좋아요.
하지만 기본값을 사용하지 않는 경우가 있는데요. 비트플래그를 사용하는 경우입니다.
비트플래그에 대해서는 다른 글에서 다루겠습니다.
마지막으로 enum을 사용하는 방법을 알아보겠습니다.
public class Student
{
public Grade mathGrade = Grade.A;
.....
}
이런식으로 사용할 enum인 Grade를 적고 . 을 이용해서 원소를 적어줍니다. 열거형의 경우 등호나 부등호를 이용하서 비교하는 것이 가능하고 조건문이나 switch문에서도 활용할 수 있습니다. 열거형을 많이 사용하면 코드가 읽기 쉽고 깔끔해지는 장점이 있습니다.
개인적으로 enum을 많이 쓰는 것을 권장하고 있어요.
'C# Programming' 카테고리의 다른 글
[C# 논리연산] &&(AND) 와 ||(OR) 사용법 (0) | 2019.04.27 |
---|---|
[C# 비트연산] AND, OR, XOR, NOT (0) | 2019.04.26 |
[ C# 익명타입 object보다 var ] (0) | 2019.04.26 |
[ C# System.DateTime ] 시간, 날짜 가져오기 (0) | 2019.04.25 |
[ C# 접근제한자 ] public, private, internal, protected (0) | 2019.04.25 |