>백엔드 개발 >C++ >C#의 Out 및 Ref 매개변수: 언제 어느 것을 사용해야 합니까?

C#의 Out 및 Ref 매개변수: 언제 어느 것을 사용해야 합니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-20 11:51:08229검색

Out vs. Ref Parameters in C#: When Should You Use Which?

"ref" 대신 "out"을 사용해야 하는 경우

"out"과 "ref" 매개변수 중에서 선택할 때 "ref"가 특별히 요구되지 않는 한 기본 선택은 "out"입니다.

Out과 Ref의 차이점

"ref"는 매개변수로 전달된 변수의 원래 값을 수정하는 메서드를 허용하는 반면, "out"은 이 기능을 금지합니다. 초기 값을 마샬링하면 불필요한 처리가 발생할 수 있으므로 프로세스나 기계 ​​간 데이터 전송과 관련하여 이러한 구별은 매우 중요합니다.

“out” 사용에 적합한 시나리오

다음 시나리오를 고려해보세요.

<code class="language-c#">person.GetBothNames(out a, out b);</code>

"person"이 객체이고 "GetBothNames"가 두 값을 검색하는 메소드라고 가정하면, "a"와 "b"의 초기 값은 메소드의 동작과 아무런 관련이 없습니다. 이 경우 "in" 또는 "out"을 사용하는 것이 선호되는 문제이며, 초기 값의 불필요한 마샬링을 제거하기 위해 "out"을 선택하는 것이 좋습니다.

"ref" 사용에 적합한 시나리오

반면, 초기 값을 수정하는 것이 메서드 의도의 일부인 경우 "ref"가 적합합니다.

<code class="language-c#">bool didModify = validator.SuggestValidName(ref name);</code>

"name" 매개변수는 참조로 전달되므로 "validator" 메소드가 해당 값을 변경하고 "didModify"를 반환하여 변경 사항을 나타낼 수 있습니다.

간단히 말하면, 대부분의 경우 초기 변수 값을 수정할 필요가 없으면 "out"이 더 나은 선택이고, 수정이 필요한 경우에는 "ref"가 필요합니다.

위 내용은 C#의 Out 및 Ref 매개변수: 언제 어느 것을 사용해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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