2017-05-17 5 views
-4

비동기 메서드의 결과에 따라 열거 형을 반환하려고합니다.async에서 비동기 반환 작업 <Enum> 및 값 얻기

var resp = await _writer.MethodThatDoesStuff(); 

하더라도 :이 메서드를 호출 할 때

public async Task<ReponseType> MethodThatDoesStuff() 
    { 
     await Task.Run(() => 
     { 
      //Doing stuff here 

      return ResponseType.Success; 

     }); 
     return ReponseType.Error; 
    } 

내가 가치가 무엇인지에 대한 액세스 권한을 얻을 수 없습니다 : 여기

public enum ReponseType 
{ 
    Success, 
    Error 
} 

는 응답 형식을 반환하는 방법입니다 나는 다음을 사용한다 :

ResponseType resp = await _writer.MethodThatDoesStuff(); 

나는 아직도 ' enum 값을 가져 오지 마십시오. 난 단지 알고 싶은 경우

RESP. 인텔리] 만 GetType을(), GetTypeCode()은 compareTo에게() 등 줘 ...

는 다음과 같이 열거를 돌려 그것을/확인 효율적이지 않다 그것의 성공 또는 오류?

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

감사합니다.

+0

등의 메소드를 호출 할 수 있어야 사용

public Task<ReponseType> MethodThatDoesStuff() { return Task.Run(() => { //Doing stuff here return ReponseType.Success; }); } 

을 질문 결과를 전혀 사용할 수 없다는 말입니다. – Servy

+3

이 질문은 완전하지 않습니다. 문제를 재현하는 데 사용할 수있는 [mcve]를 제공하십시오. – Nkosi

+0

IntelliSense에서 무엇을 기대합니까? 열거 형을 반환하면 다른 것으로 비교합니다. if (ResponseType.Success == resp) // 성공 else // 오류 –

답변

2

열거 형을 반환하는 것은 완벽합니다. 그러나 실행에서 값을 반환하지 않으므로이 값은 항상 Error입니다. 당신은 다음을 수행해야합니다 결과는 항상 오류가 있음을 말하는되지 않습니다 당신이 질문 @ScottChamberlain 같은

ResponseType response = await MethodThatDoesStuff(); 
+0

감사합니다. 그래, 응답을 테스트하고 그 값을 포함합니다. IntelliSense 생각을 통해 사용할 수 없었습니다. 당신의 도움을 주셔서 감사합니다. – thegunner