배열은 특정 유형의 고정된 수의 요소를 나타냅니다. 요소는 인접한 메모리 블록에 저장되며 해당 인덱스를 알고 있는 한 요소에 효율적으로 액세스할 수 있습니다.
배열 선언 및 초기화를 위한 C# 구문은 다음과 같습니다. -
// create a string array to hold 5 languages string[] languages = new string[3];
배열을 선언한 후 배열의 사각형 기호를 사용하여 배열의 항목을 채울 수 있습니다.
languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#";
그러나 위의 두 단계를 한 단계로 결합하는 대체 간결한 구문이 있습니다.
string[] languages = new string[] { "csharp", "visual basic", "f#" };
C#에서 암시적으로 유형이 지정된 변수를 사용하면 변수 이름 왼쪽에 있는 유형을 제거하고 var만 사용할 수 있습니다.
var languages = new string[] { "csharp", "visual basic", "f#" };
동일한 정사각형 표기법을 사용하여 배열의 모든 요소에 액세스할 수 있습니다.
string language = languages[0]; Console.WriteLine(language); // prints csharp
배열의 길이 속성은 배열에 있는 항목 수를 알려줍니다.
int count = languages.Length; Console.WriteLine(count); // 3
배열을 만든 후에는 배열의 길이를 변경할 수 없다는 점을 기억하는 것이 중요합니다. 배열 범위 외부의 요소에 액세스하려고 하면 예외가 발생합니다.
string lang = languages[3]; // throws System.IndexOutOfRangeException
배열을 반복하려면 언어에서 제공하는 for 또는 foreach 루프를 사용하세요.
// for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence }
배열을 만들 때 C# 컴파일러는 요소를 기본값으로 초기화합니다. 예를 들어, 정수 배열을 생성하면 각 요소의 값이 0으로 설정됩니다.
var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 }
요소가 값 유형인 경우 해당 유형의 각 멤버에는 기본값이 할당됩니다.
Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 public struct Point { public int X, Y; }
그러나 참조 유형의 경우 컴파일러는 각 항목에 대해 null 참조를 생성합니다.
User[] u = new User[4]; int y = u[2].Y; // NullReference exception public class User { public int X, Y; }
이 오류를 방지하려면 아래와 같이 각 항목을 명시적으로 초기화해야 합니다.
User[] users = new User[5]; for (int i = 0; i < users.Length; i++) // Iterate i from 0 to 999 users[i] = new User();
실시간 시연
using System; class Program{ static void Main(){ string[] languages = new string[3]; // create a string array to hold 5 languages languages[0] = "csharp"; languages[1] = "visual basic"; languages[2] = "f#"; string[] langugages_two = new string[] { "csharp", "visual basic", "f#" }; var languages_three = new string[] { "csharp", "visual basic", "f#" }; string language = languages[0]; Console.WriteLine(language); // prints csharp int count = languages.Length; // 3 Console.WriteLine(count); //string lang = languages[3]; // throws System.IndexOutOfRangeException // for loop for (int i = 0; i < languages.Length; i++){ string l = languages[i]; Console.WriteLine(l); // prints the names of languages in sequence } // foreach loop foreach (string l in languages){ Console.WriteLine(l); // prints the names of languages in sequence } var numbers = new int[3]; foreach (int num in numbers){ Console.WriteLine(num); // prints 000 } Point[] a = new Point[4]; int x = a[2].X; Console.WriteLine(x); // prints 0 User[] u = new User[4]; //int y = u[2].Y; // NullReference exception User[] users = new User[5]; for (int i = 0; i <users.Length; i++) // Iterate i from 0 to 999 users[i] = new User(); } } public struct Point { public int X, Y; } public class User { public int X, Y; }
csharp 3 csharp visual basic f# csharp visual basic f# 0 0 0 0
위 내용은 C#에서 배열은 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!