자, 우정으로 인하여 캡슐화가 중단되는지 여부를 놓고 토론을 떠나 보자. 실제로 일관된 디자인으로 우아하게 시도해 보자. 나는이 기능이 필요한 이유는 무엇C#에서 친구 (C++에서 사용 가능) 구현하기
public class A
{
friend class B;
}
2) : 구현하는 방법에 대한
1) 일반 질문 : 그것은 두 배 기능입니까? 일부 클래스는 ISerializable
인터페이스를 구현합니다. 그러나 ISerializable
메소드를 파생 클래스에서 보호하여 클라이언트 (문서뿐만 아니라)에 공개하지 않도록하고 싶습니다. 그러나 내부 클래스가 액세스 할 수 있어야합니다. C#에서이 문제를 해결하는 일반적인 방법은 무엇입니까?
참고 : 현재 C++ 표준에 정의 된대로 우정을 사용하고 있습니다. 동일한 어셈블리의 다른 유형의 형태는 내부 참조 표시되도록
감사
이것은 내 생각이었습니다. 그러나 논쟁을 위해서 인터페이스 구현 방법을 내부로 표시하려고하면 어떻게됩니까? –
더 이상 인터페이스를 구현하지 않으며 컴파일 타임 오류가 발생합니다. 내 질문에 대한 답변이 실제로 주어 졌을 때 내 대답이 downvoted 된 이유는 확실하지 않습니다. –
Jon, 질문의 첫 번째 부분을 해결했습니다. 실제로는 클라이언트가 메서드를 호출하지 못하게됩니다. 두 번째 부분 :이 메소드를 공개하지 않기를 바란다. 그렇지 않으면 doxygen이 문서를 문서로 내 보내어 API 사용자를 혼란스럽게 만든다. 내가 너에게 표를 줬어. –