일반적인 .NET 명명 규칙에 따라, 예를 들어 MyClass
이 인스턴스가 아니라 정적으로 참조되는 것으로 가정합니다 (큰 변경이 아닐 수도 있음). 그 가정 감안할 때, 당신이 같은 클래스가 나타납니다 : 문자열을 받아 Process
라는 이름의 메소드가 유형을 반환하는 인덱서 속성을 구현하는 모든 유형이 될 수있다이 경우
static class MyClass
{
public static IIndexer Section { get; }
}
IIndexer
을 차례로 수익률 a bool
. 우리는 간단한 IProcess
인터페이스 위의 ISomething
공백을 채울 수 있습니다
interface IIndexer
{
ISomething this[string] { get; }
}
다음으로 우리가 특정 구현에 대해 아무것도 알 필요가 없습니다 : 그래서
interface IProcess
{
bool Process();
}
을 같이 IIndexer
이론적으로 볼 수 있었다 위의 인덱서는 다음과 같이 바뀔 수 있습니다 :
IProcess this[string] { get; }
물론 위의 어떤 것도 실제 실행 코드가 없지만 당신이하고있는 일을하는 데 필요한 물건에 대해 설명합니다. 지금 당신은 당신의 성취 계약 호출 체인을 사용하여 코드를 실행 갈 때 아주 간단합니다 :
bool result1 = MyClass.Section["area1"].Process();
// MyClass.Section > IIndexer.this[string] > IProcess.Process
아이디어를 POC하려면 IIndexer 구현을 조롱하는 좋은 방법은 당신을주지으로 Dictionary<string, IProcess>
을 사용할 수 있습니다 귀하의 목적에 맞는 사용 가능한 인덱서.
'처리'가있는 클래스가 있어야합니다. –