> 백엔드 개발 > C++ > System.Drawing.image 객체가 C# 메소드로 전달되는 이유는 무엇입니까?

System.Drawing.image 객체가 C# 메소드로 전달되는 이유는 무엇입니까?

Patricia Arquette
풀어 주다: 2025-01-31 00:51:08
원래의
991명이 탐색했습니다.

Why Do Changes to a System.Drawing.Image Object Passed to a C# Method Not Always Persist?

C# 객체 참조 및 anomaly

이해를 이해합니다 C#의 객체 통과 메커니즘은 종종 혼란을 유발합니다. 참조 유형은 일반적으로 메드 내 변경이 원래 객체에 영향을 미치기 위해 허용하지만 는 고유 한 상황을 나타냅니다. 행동을 명확히하자. System.Drawing.Image

를 통과하는 물체의 뉘앙스 C#이 객체를 직접 전달하지 않는다는 것을 이해하는 것이 중요합니다. 참조 를 물체로 전달합니다. 참조 유형의 경우이 참조는 값으로 복사됩니다. 이것은 메소드가 객체 자체가 아니라 참조의 사본을 수신한다는 것을 의미합니다.

. System.Drawing.Image

동작

a 를 대체하는 변경 사항 (예 : 새 이미지를 할당)을 메소드 외부에는 반영되지 않습니다. 메소드가 참조 사본으로 작동하기 때문입니다. 메소드 내에서 참조를 재 할당하면 원본을 변경하지 않은 채로 새 참조를 만듭니다. 패스 바이 값 대 통과 참조 C#의 기본 동작은 값 유형과 참조 유형 모두에 대한 값입니다. 그러나

또는

키워드를 명시 적으로 사용하여 회의별로 강제로 강제 할 수 있습니다. Pass-by-Value (기본값) : 메소드는 참조 사본 (참조 유형) 또는 값 (값 유형)의 사본을 수신합니다. 메소드 내에서 매개 변수에 대한 변경 사항은 원본에 영향을 미치지 않습니다.

Pass-by-reference (/System.Drawing.Image) : 메소드는 원래 객체 또는 변수에 직접 액세스합니다. 발신자에게 변경 사항이 표시됩니다

예시 코드 예제 : System.Drawing.Image 는 차이를 보여줍니다. 첫 번째 버전은 원본 이미지를 변경하지 않습니다. 두 번째. 그러나 는 이미지 (예 : 회전)의 속성

를 수정하는 것이 가 참조 자체가 아니라 객체의 내부 상태를 변경하기 때문에 원본에 영향을 미친다는 것을 보여줍니다. 주요 차이점은 전체 객체를 교체하는 것과 특성 수정 사이의 주요 차이점입니다.

위 내용은 System.Drawing.image 객체가 C# 메소드로 전달되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿