열거형(Enumerator)
- 여러 상수를 선언할 때 알아보기 쉽게 해주고 서로 중복된 값을 막아줌
- 값은 1씩 증가된 값이 할당됨
class Program { enum DialogResult { YES, NO, CANCEL, CONFIRM, OK } public static void Main(string[] args) { /* 출력 값은 차례대로 0 1 2 3 4 */ Console.WriteLine((int)DialogResult.YES); Console.WriteLine((int)DialogResult.NO); Console.WriteLine((int)DialogResult.CANCEL); Console.WriteLine((int)DialogResult.CONFIRM); Console.WriteLine((int)DialogResult.OK); } }
class Program { enum DialogResult { YES, NO=10, CANCEL, CONFIRM=25, OK } public static void Main(string[] args) { /* 출력값은 차례대로 0, 10, 11, 25, 26 */ Console.WriteLine((int)DialogResult.YES); Console.WriteLine((int)DialogResult.NO); Console.WriteLine((int)DialogResult.CANCEL); Console.WriteLine((int)DialogResult.CONFIRM); Console.WriteLine((int)DialogResult.OK); } }
Nullable
- 변수가 어떤 값을 가지지 않을 수 있도록 허용
- 데이터 형식 뒤에 ?를 붙이면 Nullable 변수 선언
class Program { public static void Main(string[] args) { int? a = null; // Nullable Console.WriteLine(a.HasValue); // 출력: False a = 1; Console.WriteLine(a.Value); // 출력: 1 Console.WriteLine(a != null); // 출력: True } }
var
- 암시적으로 형식화된 지역 변수(Implicitly Typed Local Variables)
- 수의 형식을 자동으로 지정
- 지역변수로만 사용 가능
class Program { public static void Main(string[] args) { var a = 3; var b = "안녕요?ㅎ"; Console.WriteLine(a.GetType()); // 출력: System.Int32 Console.WriteLine(b.GetType()); // 출력: System.String } }
조건연산자
- 조건? 참값 : 거짓값
class Program { public static void Main(string[] args) { int a = 1; string b = (a == 1 ? "1임" : "1아님"); Console.WriteLine(b); // 출력: 1임 } }