> 백엔드 개발 > C++ > C#은 개인 멤버에 대한 액세스 제어를 위해 C의 'Friend' 키워드와 유사한 기능을 어떻게 달성합니까?

C#은 개인 멤버에 대한 액세스 제어를 위해 C의 'Friend' 키워드와 유사한 기능을 어떻게 달성합니까?

Susan Sarandon
풀어 주다: 2024-12-28 18:46:10
원래의
935명이 탐색했습니다.

How Does C# Achieve Functionality Similar to C  's

C#의 Friend 키워드

객체 지향 프로그래밍에서 "friend" 키워드는 특정 클래스에 대한 비공개 클래스 멤버의 제어된 액세스를 제공합니다. C는 "friend" 키워드를 제공하지만 C#에는 이 기능에 직접적으로 상응하는 키워드가 부족합니다.

대안: InternalsVisibleTo

C#은 InternalsVisibleTo 속성을 활용하여 비공개에 대한 제한된 액세스를 달성합니다. 주로 테스트 목적으로 사용됩니다. 이 특성은 어셈블리 또는 네임스페이스를 신뢰할 수 있는 것으로 지정하여 외부 코드에서 숨겨져 있는 내부 멤버에 액세스할 수 있도록 합니다.

AssemblyInfo.cs에서 다음 예를 고려하세요. :

[assembly: InternalsVisibleTo("OtherAssembly")]
로그인 후 복사

이 특성을 사용하면 "OtherAssembly"에서 어셈블리에 액세스할 수 있습니다. 이제 어셈블리 내에서 내부로 표시된 모든 메서드나 속성은 "OtherAssembly"에서 액세스할 수 있습니다.

테스트에서의 사용

InternalsVisibleTo 특성은 단위 테스트에서 특히 유용합니다. 시나리오. 테스트 어셈블리에 대해 어셈블리를 InternalsVisibleTo로 표시하면 다른 외부 코드에서는 숨겨진 상태로 유지하면서 테스트 목적으로 전용 멤버에 액세스할 수 있습니다.

고려 사항

InternalsVisibleTo는 메커니즘을 제공합니다. 액세스 제어의 경우 여러 면에서 C "friend" 키워드와 다릅니다.

  • AssemblyInfo.cs에 명시적인 선언이 필요합니다.
  • 개별 클래스가 아닌 어셈블리에 적용됩니다.
  • 모든 비공개 멤버에 대한 액세스를 허용하지 않습니다. 내부 구성원에게만 액세스 권한을 부여합니다.

위 내용은 C#은 개인 멤버에 대한 액세스 제어를 위해 C의 'Friend' 키워드와 유사한 기능을 어떻게 달성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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