从一个方法返回多个结果

从一个方法返回多个结果

问题描述:

我尝试使用 Try Catch 块和更好的错误处理来提高我的技能.

I trying to improve my skills using Try Catch blocks and better error handling.

我有一个执行常见任务的类,在本例中是检索 Facebook AccessToken.如果成功,我想返回 AccessToken 字符串,否则我想返回一条错误消息.这两个都是字符串,所以没问题.但是在代码的调用端检查返回值时,如何有效地做到这一点?

I have a class that performs a common task, in this case retrieving a Facebook AccessToken. If successful, I want to return the AccessToken string, if not I want to return an error message. These are both strings, so no problem. But when checking the return value on the calling side of the code, how can you do this effectively?

这就像我需要返回 2 个值.如果尝试成功,则返回 = true, "ACESCODEACXDJGKEIDJ",如果失败,则返回 = false, "哎呀,出现错误" + ex.ToString();

It's like I need to return 2 values. In the case of a successful attempt, return = true, "ACESSCODEACXDJGKEIDJ", or if it fails, return = false, "Ooops, there was an error" + ex.ToString();

然后检查返回值很容易(理论上).我可以考虑简单地返回一个真/假返回,然后为字符串设置一个 Session 变量.

Then checking the return value is easy (in theory). I could think of returning simply a true/false for return and then setting a Session variable for the strings.

从一个方法返回多个结果的方法是什么?

What is a way to return multiple results from a method?

创建一个 Result 类并返回...

Create a Result class and return that instead...

public class Result
{
   public bool Success {get;set;}
   public string AccessToken {get;set;}
   public string ErrorMessage {get;set;}
}


public Result GetFacebookToken()
{
   Result result = new Result();

   try{
      result.AccessToken = "FACEBOOK TOKEN";
      result.Success = true;
   }
   catch(Exception ex){
      result.ErrorMessage = ex.Message;
      result.Success = false;
   }

   return result;
}

然后你可以像这样调用这个代码......

Then you can call this code like...

Result result = GetFacebookToken();

if(result.Success)
{
   //do something with result.AccessToken
}
else
{
   //do something with result.ErrorMessage 
}