별도 dll의 부분 클래스
별도의 DLL에서 부분 클래스에 두 부분 (동일한 네임 스페이스, 동일한 클래스 이름)을 가질 수 있습니까?
동일한 유형의 일부인 모든 부분 유형 정의는 동일한 어셈블리 및 동일한 모듈 (.exe 또는 .dll 파일)에서 정의해야합니다. 부분 정의는 여러 모듈에 걸쳐있을 수 없습니다.
아니요. 부분 수업은 순전히 언어 기능입니다. 어셈블리가 컴파일되면 파일이 결합되어 유형을 만듭니다. 파일을 다른 어셈블리로 펼칠 수 없습니다.
그러나 수행하려는 작업에 따라 확장 방법 을 사용 하여 필요한 작업을 수행 할 수 있습니다.
불가능합니다. 어셈블리가 컴파일되면 클래스를 완료해야합니다.
다른 dll의 클래스에 메소드를 추가하려는 경우 확장 메소드를 사용할 수 있습니다. 이 메소드의 한 가지 단점은 정적 메소드를 추가 할 수 없다는 것입니다.
다른 답변이이 페이지에 방문하는 사람이보고 싶거나 원하지 않는 불쾌한 "아니오"를 제공하지만, 아직 여기에 언급되지 않은 다른 생각에 감동했습니다. 어셈블리에서 부분 클래스가 허용 된 경우, 자신이 작성하지 않은 기존 유형의 개인 멤버에 액세스하여 원래 작성자가 의도하지 않은 방식으로 조작 할 수 있으므로 모든 상속 클래스의 기능이 손상됩니다. 너무.
뿐만 아니라 다른 어셈블리 (및 해당 자식)의 클래스를 다시 컴파일해야 작동 할 수 있습니다. 따라서 논리적으로 클래스를 다른 어셈블리로 분할 할 수 없습니다.
문제는 왜 다른 어셈블리에서 부분 클래스를 만들고 싶습니까? 어셈블리 전체에서 추상 클래스와 인터페이스를 정의 할 수 있습니다.
아마도 자신의 라이브러리 내에, 3 부 라이브러리의 클래스 주위에 래퍼 클래스를 만들고 싶을 것입니다. 그런 다음 랩퍼 클래스에 기능을 추가하십시오.
참고 URL : https://stackoverflow.com/questions/3858649/partial-classes-in-separate-dlls
'development' 카테고리의 다른 글
Django 쿼리 세트에서 필터 이하를 수행하는 방법은 무엇입니까? (0) | 2020.06.14 |
---|---|
멤버 함수의 정적 변수 (0) | 2020.06.14 |
INSERT INTO와 WITH / CTE 결합 (0) | 2020.06.14 |
각도 2-innerHTML 스타일링 (0) | 2020.06.14 |
라디안을도 단위로 변환하는 방법은 무엇입니까? (0) | 2020.06.14 |