별도의 DLL에서 부분 클래스에 대해 두 부분 (동일한 네임 스페이스, 동일한 클래스 이름)을 가질 수 있습니까?
별도의 DLL에서 부분 클래스에 대해 두 부분 (동일한 네임 스페이스, 동일한 클래스 이름)을 가질 수 있습니까?
답변:
동일한 유형의 일부인 모든 부분 유형 정의는 동일한 어셈블리 및 동일한 모듈 (.exe 또는 .dll 파일)에서 정의해야합니다. 부분 정의는 여러 모듈에 걸쳐있을 수 없습니다.
다른 답변이이 페이지에 방문하는 사람이보고 싶거나 원하지 않는 불쾌한 "아니오"를 제공하지만, 아직 여기에 언급되지 않은 다른 생각에 감동했습니다. 어셈블리에서 부분 클래스가 허용 된 경우, 자신이 작성하지 않은 기존 유형의 개인 멤버에 액세스하여 원래 작성자가 의도하지 않은 방식으로 조작 할 수 있으므로 모든 상속 클래스의 기능이 손상됩니다. 너무.
뿐만 아니라 다른 어셈블리 (및 해당 자식)의 클래스는 다시 컴파일해야 작동합니다. 따라서 논리적으로 클래스를 다른 어셈블리로 분할 할 수 없습니다.
문제는 왜 다른 어셈블리에서 부분 클래스를 만들고 싶습니까? 어셈블리 전체에서 추상 클래스와 인터페이스를 정의 할 수 있습니다.