Section 20.1: 배열 선언하기
배열은 중괄호 ([]
) 를 이용한 초기화 문법을 통하여 선언 및 기본값 채우기를 수행할 수 있다. 예를 들어, 10 개의 integer 배열을 생성하려면 다음과 같이 코드를 작성할 수 있다:
int[] arr = new int[10];
C# 에서의 배열 인덱스의 값은 0부터 시작하게 된다. 따라서 위 예제의 배열은 0-9 사이의 값을 가지게 된다.
예제:
int[] arr = new int[3] {7,9,4};
Console.WriteLine(arr[0]); // 출력 결과 : 7
Console.WriteLine(arr[1]); // 출력 결과 : 9
이는 시스템이 요소들의 인덱스를 0 부터 세기 시작한다는 것을 의미한다. 또한, 배열의 요소들에 대한 접근은 상수 시간 (constant time) 내에 이루어진다. 이는 배열의 첫번째 요소에의 접근에 소요되는 비용 (시간) 은 배열의 두번째, 세번째 등 다른 요소들에 대한 접근에 소요되는 비용과 동일하다는 의미이다. 또한 사용자는 배열 자체를 생성 (instantiate) 하는 것 뿐만 아니라 배열에 대한 빈 참조 (bare reference) 를 선언할 수도 있다.
int[] arr = null; // 문제 없음, 배열에 대한 null 참조자 (reference) 를 선언한다.
int first = arr[0]; // 실제 참조할 배열이 존재하지 않으므로 System.NullReferenceException 을 throw 한다.
컬렉션 초기화 (collection initialization) 문법을 이용하면 배열을 생성함과 동시에 사용자 설정 값들로 초기화할 수 있다:
int[] arr = new int[] { 24, 2, 13, 47, 45 };
new int[]
부분은 배열 변수를 선언할 때에 생략이 가능하다. 이는 완전한 (self-contained) 표현식이 아니므로, 변수 선언이 아닌 부분에서의 호출은 정상적으로 작동하지 않는다. (이러한 경우, new
를 사용하는 버전의 표현식을 이용한다):
int[] arr = { 24, 2, 13, 47, 45 }; // 문제 없음
int[] arr1;
arr1 = { 24, 2, 13, 47, 45 }; // 컴파일 되지 않음
암묵적 타입의 배열
위에서 소개된 선언식들의 대체 방법으로, var
키워드와의 조합을 통해 특정 타입의 이름 부분을 생략하고 배열의 타입 자체를 컴파일러로 하여금 추론하게 할 수도 있다:
// int[] 과 동일하다
var arr = new [] { 1, 2, 3 };
// string[] 과 동일하다
var arr = new [] { "one", "two", "three" };
// double[] 과 동일하다
var arr = new [] { 1.0, 2.0, 3.0 };
본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.
[출처] https://books.goalkicker.com/CSharpBook/
'번역 > C# Notes for Professionals' 카테고리의 다른 글
20.3: 배열 복사하기 (0) | 2021.04.20 |
---|---|
20.2: 배열 선언 시 기본값이 아닌 값들로 채워 초기화하기 (0) | 2021.04.20 |
19.17: 현재 날짜 정보 구하기 (0) | 2021.04.14 |
19.16: ToString, ToShortDateString, ToLongDateString 및 서식화된 ToString 메소드 (0) | 2021.04.09 |
19.15: DateTime.ParseExact(String, String, IFormatProvider) 메소드 (0) | 2021.04.02 |