2010-02-09 8 views
2

C#에서 클래스와 그 중요성을 더 잘 이해 했으므로 특정 상황을 처리하는 방법에 대한 질문이 있습니다.메서드 호출

3 개의 다른 외부 장치를 사용하여 5-6 개의 테스트를 수행해야합니다. 각 테스트의 시작시 약 10 개 정도의 명령이 필요합니다.

따라서 6 개의 테스트에 대해 각 장치에 약 10 개의 명령이 있습니다.

나는 원래 거라고하지만 각 장치에 대한 배열이 있지만, 지금은 더 의미가 각 단계에 대한 각 deveice에 대한 클래스의 메소드 가지고 - 등 device1_test1() device2_test2()

이를 괜찮 으면하지만 이전 단계로 돌아갈 수있는 능력을 사용자에게 제공해야합니다.

그래서 TEST4에서 오류가 발생하면 사용자는 TEST2로 되돌아 갈 수 있지만 분명히 명령을 다시 실행하여 테스트를 진행할 때 명령이 서로 의존하므로 어디 있는지 알 수 있습니다.

그래서 모든 장치에 대해 test1 명령을 발행 한 다음 모든 장치에 대해 test2 명령을 발행합니다.

내가 어떻게해야합니까?

그렇다면 device1_test1 및 2 등을 호출 할 때 정수를 증가시켜 test1 test2 test3 부분의 메소드 이름에 변수 내용을 사용하여이 작업을 수행 할 수 있습니까?

이 같은 짝수 구문하지만 무엇인가 확실하지 않다 -이 말이

device1_test+counter+() where counter will contain 1, then 2, then 3 etc ? 

희망.

그렇지 않은 경우이 시나리오를 해결하는 방법에 대한 제안이 있으십니까?

감사합니다. George.

답변

4

Delegates 여기에 도움이 될 것입니다.

Action[] testCases = new Action[] { device1_test1, devide1_test2 }; 

그리고 그냥 보통의 for 루프 컬렉션을 반복 :

for(int i = 0; i < actions.Length; ++i) { 
    try { 
     actions[i].Invoke(); 
    } 

    catch(TestFailedException) { 
     if(i > 1) 
      i -= 1; 
    } 
} 
+0

안녕 안톤, 그것에 대해 감사합니다, 나는 후의이었다 정확하게! 건배, George. – George