>백엔드 개발 >C++ >C#에서는 배열이 메서드에 어떻게 전달되나요?

C#에서는 배열이 메서드에 어떻게 전달되나요?

Linda Hamilton
Linda Hamilton원래의
2025-01-10 10:47:41143검색

How Are Arrays Passed to Methods in C#?

C#에서 전달하는 배열 참조에 대한 심층적인 이해

C#에서 배열은 기본 데이터 유형과 다릅니다. 참조 유형입니다. 이는 다음과 같은 질문을 던집니다: 배열이 메소드에 어떻게 전달됩니까? 값으로 전달합니까, 아니면 참조로 전달합니까?

값 전달

기본적으로 배열 참조는 값으로 전달됩니다. 이는 참조 복사본이 생성되어 메서드에 전달됨을 의미합니다. 메서드 내부의 배열 내용에 대한 변경 사항은 호출 코드에 표시되지만 배열 자체에 대한 재할당은 호출자에게 다시 전파되지 않습니다.

참조로 전달

참조 자체를 수정하려면 ref 수정자를 사용할 수 있습니다. 참조로 배열을 전달하면 호출자가 재할당을 포함하여 참조에 대한 모든 변경 사항을 볼 수 있습니다.

다음 코드는 값 전달과 참조 전달의 차이점을 보여줍니다.

<code class="language-csharp">void Foo(int[] data) {
    data[0] = 1; // 调用方可见此更改
}
void Bar(ref int[] data) {
    data = new int[20]; // 调用方可见此更改
}</code>

Foo을 호출하면 참조 사본이 전달됩니다. Foo 내의 배열 내용을 변경하면 호출 코드에 표시됩니다. 그러나 Foo 내의 배열에 대한 재할당은 호출자에게 표시되지 않습니다.

반대로 ref 수정자를 사용하여 Bar을 호출하면 참조 자체가 전달됩니다. 재할당을 포함하여 참조에 대한 모든 변경 사항은 호출 코드에 표시됩니다.

위 내용은 C#에서는 배열이 메서드에 어떻게 전달되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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