목차
기본값
출력
백엔드 개발 C#.Net 튜토리얼 C#에서 배열은 어떻게 작동하나요?

C#에서 배열은 어떻게 작동하나요?

Sep 10, 2023 am 09:41 AM

数组在 C# 中如何工作?

배열은 특정 유형의 고정된 수의 요소를 나타냅니다. 요소는 인접한 메모리 블록에 저장되며 해당 인덱스를 알고 있는 한 요소에 효율적으로 액세스할 수 있습니다.

배열 선언 및 초기화를 위한 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

차세대 C 컴파일러를 추가하는 방법 차세대 C 컴파일러를 추가하는 방법 Mar 03, 2025 pm 05:44 PM

차세대 C 컴파일러를 추가하는 방법

C 언어 컴파일러에 의해 코드를 복사하는 방법 C 언어 컴파일러에 의해 코드를 복사하는 방법 Mar 03, 2025 pm 05:43 PM

C 언어 컴파일러에 의해 코드를 복사하는 방법

C 언어 온라인 프로그래밍 웹 사이트 C 언어 컴파일러 공식 웹 사이트 요약 C 언어 온라인 프로그래밍 웹 사이트 C 언어 컴파일러 공식 웹 사이트 요약 Mar 03, 2025 pm 05:41 PM

C 언어 온라인 프로그래밍 웹 사이트 C 언어 컴파일러 공식 웹 사이트 요약

C 언어 컴파일러의 웹 버전은 무엇입니까? C 언어 컴파일러의 웹 버전은 무엇입니까? Mar 03, 2025 pm 05:42 PM

C 언어 컴파일러의 웹 버전은 무엇입니까?

C 언어로 Null의 대안은 무엇입니까? C 언어로 Null의 대안은 무엇입니까? Mar 03, 2025 pm 05:37 PM

C 언어로 Null의 대안은 무엇입니까?

어떤 C 언어 컴파일러가 더 낫습니까? 어떤 C 언어 컴파일러가 더 낫습니까? Mar 03, 2025 pm 05:39 PM

어떤 C 언어 컴파일러가 더 낫습니까?

Null은 C 언어로 된 현대 프로그래밍에서 여전히 중요합니까? Null은 C 언어로 된 현대 프로그래밍에서 여전히 중요합니까? Mar 03, 2025 pm 05:35 PM

Null은 C 언어로 된 현대 프로그래밍에서 여전히 중요합니까?

C 언어 컴파일러 설치 자습서 (컴퓨터 버전) C 언어 컴파일러 설치 자습서 (컴퓨터 버전) Mar 03, 2025 pm 05:41 PM

C 언어 컴파일러 설치 자습서 (컴퓨터 버전)

See all articles