如何在不同方法(同一类中的两个方法)中使用方法内变量中的数据

本文关键字:方法 两个 使用方法 变量 数据 一类 | 更新日期: 2023-09-27 18:34:42

我想在第二个方法中重用第一个方法中的OAuth2Parameters参数。代码如下:

public class SomeController : ApiController
    {
        public string First()
        {
            OAuth2Parameters parameters = new OAuth2Parameters();
            parameters.ClientId = "someClientID";
            parameters.ClientSecret = "someClientSecret";
            parameters.RedirectUri = "someRedirectUri";
            parameters.Scope = "someScope";
            string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
            return authorizationUrl;
        }
        public void Second(string someAccessCode)
        {
            // I want to reuse the above OAuth2Parameters parameters here:
            parameters.AccessCode = someAccessCode;
            OAuthUtil.GetAccessToken(parameters);
            string accessToken = parameters.AccessToken;
        }
    }

我怎样才能做到这一点?

如何在不同方法(同一类中的两个方法)中使用方法内变量中的数据

如果第一个方法总是在第二个方法之前调用,则可以为类声明一个成员字段。

public class SomeController : ApiController
{
    OAuth2Parameters parameters;
    public string First()
    {
        string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(parameters);
        return authorizationUrl;
    }
    public void Second(string someAccessCode)
    {
        // I want to reuse the above OAuth2Parameters parameters here:
        parameters.AccessCode = someAccessCode;
        OAuthUtil.GetAccessToken(parameters);
        string accessToken = parameters.AccessToken;
    }
}

如果不确定,请使用具有支持字段的属性。

public class SomeController : ApiController
{
    OAuth2Parameters _parameters;
    private OAuthParameters {
      get {
        if (_parameters == null) {
          _parameters = new OAuth2Parameters();
          _parameters .ClientId = "someClientID";
          _parameters .ClientSecret = "someClientSecret";
          _parameters .RedirectUri = "someRedirectUri";
          _parameters .Scope = "someScope";
        }
        return _parameters;
      }
    }
    public string First()
    {
        string authorizationUrl = OAuthUtil.CreateOAuth2AuthorizationUrl(OAuthParameters);
        return authorizationUrl;
    }
    public void Second(string someAccessCode)
    {
        // I want to reuse the above OAuth2Parameters parameters here:
        parameters.AccessCode = someAccessCode;
        OAuthUtil.GetAccessToken(OAuthParameters);
        string accessToken = OAuthParameters.AccessToken;
    }
}

试试这个。在 First(( 上面声明变量,以便它可用于两种方法

OAuth2Parameters parameters; 
public string First() {  parameters = new OAuth2Parameters(); ....