나는 다음과 같은 모델 패턴이 : 위의 과정 이상의 자식 (손자) 클래스가있을 것입니다하지만 난 단지 그들 중 하나를 넣어 같은C#에서 확장 메서드를 오버로드하는 방법이 있습니까?
public abstract class PARENTCLASS {...}
public class CHILD_A_CLASS : PARENTCLASS{...}
public static class EXTENSION{
public static METHOD(this PARENTCLASS parent){...}
public static METHOD(this CHILD_A_CLASS child) {...}
}
뭔가.
PARENTCLASS cc = new CHILD_A_CLASS();
cc.METHOD();
그것은 부모 확장 메서드 대신 내 예상 아동 확장 메서드를 실행합니다 : 나는 다음과 같은 확장 메서드를 호출 할 때 문제이다. 누구든지 이것을 구현하는 방법에 대한 아이디어가 있습니까? (메소드 자체를 클래스에 넣는 것을 고려하지 않고 모델 클래스를 다른 로직과 멀리 떨어져 있고 싶기 때문에 상속을 수행합니다).
감사합니다. 나는 타입 캐스팅이 실행하기에는 너무 비싸고 이와 같이 코드를 유지하는 것은 매우 어색하다고 생각한다. 나는 이것을 구현하기위한 대체 방법을 찾을 것이라고 생각한다. – xandy
타입 캐스팅은 꽤 빠르지 만 유지 관리가 지저분 할 수 있습니다. –
제안서가 다형성이 아니므로 선택한 메소드는 런타임 참조 유형이 아닌 컴파일 참조 유형에서만 정확합니다. 간단히 말해서 너무 우선 적용되지는 않습니다. 항상 작동하지 않고 불일치로 이어지고 잘못 보이고 더 많은 문제를 야기하므로 나쁜 습관이라고 생각합니다. 나는이 메소드들이 동적으로 전달되지 않는다는 사실을 숨기면서 확장 메소드가 잘못되었다고 생각한다. –