기본 클래스 메서드에 전달할 클래스 (또는 기본 클래스)의 메서드를 전달할 수 있어야합니다 (더 많은 작업을 수행해야하므로).표현식을 통해 매개 변수로 메서드를 전달하십시오.
나는 다음과 같은 가능성에 대해 알고있다 : 나의 기본 클래스에서 나는 public void Call(Action action)
이라는 메쏘드를 가지고 있는데, 단지 action()
을 호출 할 것이고 다른 것들을 할 것이다.
하지만 이제는이 방법으로 모든 것을 넣을 수 있습니다. Call(() => string.Format("Some {0}, "text));
그러나 나는 단지 자신의 유형이나 기본 유형의 메소드 만 허용하려고합니다.
나는 public void Call(Expression<Func<MyClassType, Action>> expressionToAction)
과 같은 것에 대해 생각하지만 올바른 지적을받지 못했습니다.
이것도 가능합니까? expression-param을 사용하면 메서드가 Action
을 반환해야한다는 오류가 발생합니다. 이는 내가 원하는 바가 전혀 아닙니다.
하위 클래스의 구체적인 구현에 의해 무시되는 기본 클래스의 간단한 가상 메서드는 어떻습니까? – Tomer
'Func'는 반환 된'Action'에 대해 아무 것도 보장하지 않습니다. 실제로 달성하려는 것은 무엇입니까? 왜 당신이 이것을하고 싶은지에 대한 구체적인 예를 제시한다면, 아마도 이것을하는 더 좋은 방법이있을 것입니다. –
Groo