C의 Friend 및 C의 부재
C에서 "friend" 키워드는 외부 클래스의 비공개 멤버에 대한 액세스 권한을 부여합니다. 수업. 이를 통해 캡슐화를 손상시키지 않고 개인 정보를 제어하여 공유할 수 있습니다. 그러나 이 개념은 C#에서 직접 구현되지 않습니다.
간격 해소: InternalsVisibleTo
C#에서는 "친구"에 가장 가까운 근사값으로 InternalsVisibleTo라는 속성을 제공합니다. 이를 통해 어셈블리는 다른 어셈블리의 내부 멤버(전용 멤버 포함)에 액세스할 수 있습니다. 이는 제한된 형태의 제어된 액세스를 제공합니다.
다음 시나리오를 고려하십시오.
이를 달성하려면 다음 속성을 ClassA의 AssemblyInfo.cs 파일:
[assembly: InternalsVisibleTo("TesterAssembly")]
"TesterAssembly"를 Tester 클래스가 포함된 어셈블리 이름으로 바꿉니다. 이렇게 하면 ClassA의 내부 멤버에게 TesterAssembly 액세스 권한을 부여하게 됩니다.
사용 예
이것이 어떻게 작동하는지 설명하기 위해 다음은 간단한 예입니다. 예:
ClassA.cs
public class ClassA { private int _privateMember; public int PublicMember { get; set; } }
Tester.cs
using ClassAAssembly; public class Tester { public void Test() { // Access private member through InternalsVisibleTo var instance = new ClassA(); instance._privateMember = 10; } }
InternalsVisibleTo 속성을 적용하여, 어셈블리 수준에서 내부 멤버(비공개 멤버 포함)의 접근성을 제어할 수 있으므로 노출 없이 관리 코드 테스트가 가능합니다. 민감한 데이터는 외부 소비자에게 공개됩니다.
위 내용은 C#은 Private 멤버에 대한 액세스 제어를 위해 C의 'friend' 키워드 기능을 어떻게 달성합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!