'return'에 해당되는 글 2건

  1. 2013.10.15 T Generic 리턴하기
  2. 2010.06.09 [wp7] Event Handler러 대신 Callback 이용하여 return 하기
Windows8 App2013. 10. 15. 10:19

롯데시네마 같은 경우는 API를 따로 프로젝트로 빼내었다 유닛테스트에서도 사용하고 여러곳에서 유연하게 사용하기 위함

 

하지만 그렇게 함으로써 메세지박스를 뛰우지를 못해서 error 메세지만 따로 보내야 하는 경우가 생겼다..

 

그럴때 이렇게 하였다.

 

protected async Task<T> GetObjectAsync<T>(string url, HttpContent content) where T : ResultBase, new()
        {
            var uri = new Uri(BASE_DOMAIN + url);
            HttpResponseMessage result = null;
            try
            {
                result = await _httpClient.PostAsync(uri, content);
            }
            catch (Exception ex)
            {
                //var temp = new ResultBase() { err_message = ex.Message };
                return new T() { err_message = ex.Message };

            }

 

이부분을 잘보면 된다.

protected async Task<T> GetObjectAsync<T>(string url, HttpContent content) where T : ResultBase, new()

 

그래서 리턴을 이런식으로 가능하였다.

 return new T() { err_message = ex.Message };

참고한곳

http://stackoverflow.com/questions/4712567/c-sharp-generic-method-return-values

 

 


 


 

Posted by 동동(이재동)
Windows Phone 72010. 6. 9. 16:38
아까랑 다르게 이번에는 callback을 이용해서 해보겠다....

소스코드가 이상하게 올라가서 이제부터 <pre>태그를 써서 올려야겠다 ㅡ.ㅡ;;

 


 
public MainPage()
        {
            InitializeComponent();
 
            SupportedOrientations = SupportedPageOrientation.Portrait | SupportedPageOrientation.Landscape;
            Download.start(onStartComplete);                        
        }
 
        private void onStartComplete(string value, Exception ex)
        {
            Debug.WriteLine(value);
        }
 
 
 






일단 알아보기 쉽게 아까 소스를 재사용(?) 했다.





역시 download class가 있고 거기서 webClient에서 다운받은 웹소스를 저장혹은 출력하는것이다.







헉 더 간단하다. 그냥 onStartComplete 메소드 하나 만들어서 파라미터로 값을 넣는다.







사실 이것보다 이것을 먼저 봐야 할것이다.







download.cs



 
public class Download
    {
        public static void start(Action<string,Exception> callback)
        {
            WebClient webRequest = new WebClient();
            var apiURI = new Uri("http://www.google.co.kr", UriKind.RelativeOrAbsolute);
 
            webRequest.DownloadStringAsync(apiURI);
            webRequest.DownloadStringCompleted += (s, e) =>
                {
                    string value = "Good Data"; //보낼데이타 e를 보내도 됨
                    callback(value, null);
                };
        }
    }
 
 
 



코드가 한결 가벼워졌다...
</STRING,EXCEPTION>보면 Action 이라는것을 이용해서 값이랑 exception을 받고 DownloadCompete 시에 저 데이터를 callback 하는것이다.

이것도 말보다는 직접 소스를 보는게 나을것이다.

샘플소스

</STRING,EXCEPTION>[#FILE|Call_Back_Sample.zip|pds/201006/09/37/|mid|0|0|pds20|0#]


</STRING,EXCEPTION></STRING,EXCEPTION>
Posted by 동동(이재동)